我在我的wx.Frame中使用matplotlib在某个位置绘制一些箭头和文本。箭头的数量和位置基于先前创建的数据。 我做了一些计算,但基本上就是这样:
arrow =引物 每个底漆: 在y - 0.05处绘制一个箭头到previos箭头(primer_y - 0.05)。 箭头的x位置来自数据,这是计算和缩放的数据(不是那么重要,现在只是箭头应该在primer_x处。)
一切正常,直到我画了很多箭。例如。在我的代码示例中,数据包含62个箭头,其中18个正确绘制,接下来的3个丢失,但文本在那里,其余的完全缺失。
有谁知道可能是什么问题?我已经尝试过改变FigureSize,但它只是拉伸箭头。
这是一个快速而肮脏的工作示例,数据包含在代码中: http://pastebin.com/7mQmZm2c
非常感谢任何帮助! 提前致谢! 孙燕姿
答案 0 :(得分:3)
棒
print((primer_x+0.06, primer_y))
循环内部。你会发现箭头不再被画出来了
primer_y
变为否定。
self.axes.annotate
绘制箭头
self.fig.text
的箭头。轴和图形使用不同
坐标系。将self.fig.text
更改为self.axes.text
将允许您使用相同的坐标系,这将成为它
您可以更轻松地将文本放在箭头下方。例如,如果将for循环更改为
for primer,primer_y in zip(data,np.linspace(0.95,0.0,len(data))):
而不是每次通过循环时将primer_y
减去固定数量,然后primer_y
会自动将自己在0.95之间留下0.0,无论data
中有多少项
如果您发现箭头被压扁(垂直),您可以展开
通过更改此行的figsize
来计算:
self.fig = matplotlib.figure.Figure(figsize=(20, 30), facecolor='white')