我必须绘制一些图形(pyplot首选,但不是强制性的),但是以非常具体的方式。这是我想要的一个例子:
我已经知道如何使用pyplot来获取我想要的大部分内容。 我不知道的是:
如何命名图表? (A B C D...)。我也希望能够设置字母的位置,就像在图片上一样。在左上角。
有没有办法为轴包含箭头,就像在图片上一样?我对这个没什么好希望。也许我可以在轴的图例中使用LaTex,并包含类似\ arrow?
答案 0 :(得分:1)
将轴刺向右侧和顶部:
要移除右侧和顶部的刺,您可以致电:
for spine_loc in ('top', 'right'):
ax.spines[spine_loc].set_visible(False)
接下来,您将要调用这些函数以删除刻度:
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
要设置标题的位置,您可以使用轴标题实例的set_position
方法:
title = ax.set_title('test')
title.set_position([-0.1, 1])
坐标似乎是axes fraction
,我还没有找到方法来指定figure fraction
或任何常见的选项,例如ax.annotate
。但是这会让你到达你想去的地方,这也是有道理的,因为这里的标题是与一个轴实例相关联的,而不是例如一个数字窗口。
添加箭头以指示增加坐标的方向:
可以轻松绘制箭头,只需使用annotate
并指定arrowprops
,同时将字符串留空。通过为xycoords
和textcoords
指定正确的选项,生成的箭头可以定位在任何位置,甚至在轴外。
虽然,您可以轻松地在Latex中为xlabel(或ylabel)指定带衬线的箭头:
ax.set_xlabel(r'$\overrightarrow{X} (\mu{m})$')
但我认为这并不完全是你想要的,因为箭头似乎只表示这些图中增加纵坐标的方向。在这种情况下,箭头有chartjunk,但是您可以选择。
您还应该查看matplotlib中的axisline example,其中显示了如何使用SubplotZero
类。这使得两个刺在(0,0)交叉相对容易,就像我们大多数人在高中时习惯的那样。该示例还解决了此处描述的问题(1)和(3)。