我对这两行有疑问。我不完全理解它。
%
和此p.get_width(), (p.get_x() + p.get_width()/ 2., p.get_y( ))
究竟是做什么的? 有没有办法删除像0这样的特殊值。所以除了0以外所有数字都显示?或者用名字交换数字?
for p in ax.patches:
ax.annotate(("%1.f") % p.get_width(), (p.get_x() + p.get_width()/ 2., p.get_y( )), fontsize = 2, xytext=(-3, 2),textcoords='offset pixels')
答案 0 :(得分:0)
annotate函数为图的某些特征添加文本(https://matplotlib.org/users/annotations.html)。在您的情况下,annotate函数采用以下参数:
a)要写的文字
("%1.f") % p.get_width()
这是一个复杂的部分。 %用于格式化字符串。在您的情况下,%将替换为p.get_width()的值。 1.f指定格式(逗号后面带有一个数字的浮点数)。因此,如果p.get_width()的结果是1.23445,则结果将是字符串" 1.2"。您可以使用名称更改此编号而不会出现问题。为了避免零值,我会检查上面的行。
b)要注释的要素的坐标
(p.get_x() + p.get_width()/ 2., p.get_y( ))
这只是两个浮点数,表示x坐标和y坐标的形式(x,y)
c)注释的字体大小
fontsize = 2
d)写入注释的坐标
xytext=(-3, 2)
e)其他论点
textcoords='offset pixels'