Nav*_*vid 4 python text position matplotlib
(虽然有几个问题与我的问题类似,但几乎所有问题都与文本框、图例和注释有关。)
使用循环,我想显示 32 个属性的具体信息:左侧的直方图和右侧的统计信息。
仅处理一个属性非常简单,我将 x,y 设置为文本位置,就是这样:
#Histogram
sns.distplot(n1, kde=True)#fit=stats.beta)
plt.title('Histogram')
plt.xlabel('Duration')
plt.xticks(np.arange(0, max(n1)+1, 0.5))
#Statistics (There are 13 in total)
plt.text(1.85,5,'Standard Time: %6.4f'%(ST.iloc[j,0]))
plt.text(1.85,5,'Median: %6.4f'%(medmed))
plt.text(1.85,4.65,'Variance from ST: %6.2f '%(Totvarval))
plt.text(1.85,4.3,'Standard Deviation: %6.4f'%(np.std(n1)))
Run Code Online (Sandbox Code Playgroud)
问题是,当我为所有属性创建循环时,考虑到每个属性的不同范围,文本位置相对发生变化,导致这样的结果:
我知道应该有一种方法来修复协调,但我在文档中找不到它。
传递给的坐标pyplot.text是数据坐标(如文档指出的)。这意味着文本所在的绝对(像素)坐标取决于绘图轴的 X 和 Y 范围。如果您想指定相对于轴本身而不是数据的位置,则必须转换坐标,例如如下所示:
x0, xmax = plt.xlim()
y0, ymax = plt.ylim()
data_width = xmax - x0
data_height = ymax - y0
plt.text(x0 + data_width * 1.5, y0 + data_height * 0.5, 'Some text')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6458 次 |
| 最近记录: |