matplotlib的相同注释中的字体大小不同?

use*_*727 9 annotations matplotlib rectangles font-size treemap

我需要用几条数据线注释一个pylab矩形 - 这些数据行的长度不同.搜索matplotlib文档和谷歌搜索,我找不到一种方法来给注释的不同部分提供不同的大小.

以下代码段演示了此问题:

import pylab
from matplotlib.patches import Rectangle
pylab.rcParams['verbose.level'] = 'debug-annoying' 

def draw_rectangle(lower, upper, entry):
    ax = pylab.subplot(111)
    r = Rectangle( lower, upper[0]-lower[0], upper[1] - lower[1],
            edgecolor='k')
    ax.add_patch(r)

    textRank = str(entry['rank'])
    textTeamName = entry['teamName']
    textSubmissionDate = entry['submissionDate']
    text = textRank + "\n" + textTeamName + "\n" + textSubmissionDate

    ax.add_artist(r)
    rx, ry = r.get_xy()
    cx = rx + r.get_width()/2.0
    cy = ry + r.get_height()/2.0

    ax.annotate(text, (cx, cy), color='w', weight='bold', ha='center', va='center', size=14)

if __name__ == '__main__':
    entry = {'rank': 22, 'submissionDate': '12/21/2012 4:58:45 AM', 'teamName': 'A very very very very very very very very very very long name'}
    lower = [0,0]
    upper = [1,1]
    draw_rectangle(lower, upper, entry)
    pylab.show()
Run Code Online (Sandbox Code Playgroud)

一个长度不同的矩形数据 例如,有没有办法让注释"teamName"的字体大小不同于"rank"的字体大小?


另一个问题是我找不到字体大小与缩放相关的方法:
我正在创建一个树形图,即pylab窗口填充了不同大小的矩形.如果我想为不同的矩形创建注释,则长数据需要具有非常小的尺寸(以保持在相应的矩形的边界内).但是,我希望在放大时长数据行的字体大小会增长. 带注释的树形图

Ber*_*sen 20

首先绘制您的图,然后使用ax.annotate,迭代您的 x 坐标、y 坐标、标签和字体大小。

import matplotlib.pyplot as plt

X = [1,2,3,4,5]
Y = [1,1,1,1,1]
labels = 'ABCDE'
sizes = [10, 15, 20, 25, 30]

fig, ax = plt.subplots()

ax.scatter(X, Y)

for x, y, label, size in zip(X, Y, labels, sizes):
    ax.annotate(label, (x, y), fontsize=size)

plt.show()
Run Code Online (Sandbox Code Playgroud)

不同字体大小的绘图


use*_*727 4

我找不到创建具有不同字体的注释的方法,因此我将创建一个辅助函数,该函数将计算注释的每一行上使用的字体粗细以及相关的 (cx, cy),然后
调用ax.注释几次。

  • 你愿意分享吗?:-) (12认同)