图表:轮廓,箭头和命名

时间:2014-09-14 10:54:37

标签: python graphics graph matplotlib

我必须绘制一些图形(pyplot首选,但不是强制性的),但是以非常具体的方式。这是我想要的一个例子:

example

我已经知道如何使用pyplot来获取我想要的大部分内容。 我不知道的是:

  • 如何命名图表? (A B C D...)。我也希望能够设置字母的位置,就像在图片上一样。在左上角。

  • 有没有办法为轴包含箭头,就像在图片上一样?我对这个没什么好希望。也许我可以在轴的图例中使用LaTex,并包含类似\ arrow?

  • 的内容

1 个答案:

答案 0 :(得分:1)

  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')
    
  2. 要设置标题的位置,您可以使用轴标题实例的set_position方法:

    title = ax.set_title('test')
    title.set_position([-0.1, 1])
    

    坐标似乎是axes fraction,我还没有找到方法来指定figure fraction或任何常见的选项,例如ax.annotate。但是这会让你到达你想去的地方,这也是有道理的,因为这里的标题是与一个轴实例相关联的,而不是例如一个数字窗口。

  3. 添加箭头以指示增加坐标的方向: 可以轻松绘制箭头,只需使用annotate并指定arrowprops,同时将字符串留空。通过为xycoordstextcoords指定正确的选项,生成的箭头可以定位在任何位置,甚至在轴外。 虽然,您可以轻松地在Latex中为xlabel(或ylabel)指定带衬线的箭头:

    ax.set_xlabel(r'$\overrightarrow{X} (\mu{m})$')
    

    但我认为这并不完全是你想要的,因为箭头似乎只表示这些图中增加纵坐标的方向。在这种情况下,箭头有chartjunk,但是您可以选择。

  4. 您还应该查看matplotlib中的axisline example,其中显示了如何使用SubplotZero类。这使得两个刺在(0,0)交叉相对容易,就像我们大多数人在高中时习惯的那样。该示例还解决了此处描述的问题(1)和(3)。