Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib fontsize(以轴单位表示)_Python_Matplotlib_Plot - Fatal编程技术网

Python Matplotlib fontsize(以轴单位表示)

Python Matplotlib fontsize(以轴单位表示),python,matplotlib,plot,Python,Matplotlib,Plot,我正在向绘图添加一个文本字段。要确定字母的大小,我使用fontsize参数: import matplotlib.pyplot as plt r = plt.Rectangle((2,2), 10, 10, fill = False) plt.gca().add_patch(r) plt.text(7, 7, 'my rectangle', fontsize = 12, ha='center', va='center') plt.axis(xmin = 0, xmax = 14, ymin =

我正在向绘图添加一个文本字段。要确定字母的大小,我使用
fontsize
参数:

import matplotlib.pyplot as plt
r = plt.Rectangle((2,2), 10, 10, fill = False)
plt.gca().add_patch(r)
plt.text(7, 7, 'my rectangle', fontsize = 12, ha='center', va='center')
plt.axis(xmin = 0, xmax = 14, ymin = 0, ymax = 14)
我希望文本“我的矩形”的高度正好是(y轴的)2个单位。有什么方法可以做到这一点吗?

我怀疑这是否正好是2个数据单元,但看起来非常接近:

import matplotlib.pyplot as plt
r = plt.Rectangle((2,2), 10, 10, fill = False)
plt.gca().add_patch(r)
ymin, ymax = (0, 14)
plt.axis(xmin = 0, xmax = 14, ymin=ymin, ymax=ymax)

# Get dimensions of y-axis in pixels
y1, y2 = plt.gca().get_window_extent().get_points()[:, 1]

# Get unit scale
yscale = (y2-y1)/(ymax-ymin)

# We want 2 of these as fontsize
fontsize = 2*yscale
print fontsize, 'pixels'

txt = plt.text(7, 7, u"\u25AF" + 'my rectangle', fontsize=fontsize, ha='center', va='center')

plt.savefig('test.png')

要在调整大小时使其正常工作,需要添加回调