美文网首页
matplotlib.pyplot绘制legend、特殊符号、设

matplotlib.pyplot绘制legend、特殊符号、设

作者: AibWang | 来源:发表于2018-10-11 17:37 被阅读0次

    python作为一门编程语言长期受到IT,科学工作者的青睐。其众多优秀的开源库大大缩短了程序编写工作者的工作量,而且对于许多科学运算库(或包)经历长期的更新和改进,运算效率得到很大提升。对于一个初级的程序猿,如果自己去实现一些运算过程,实现后的效率肯定远不及稳定包中的实现过程。

    matplotlib是一个近似于Matlab绘图的开源库,具备很强的绘图功能,可能只有你想不到的图不能通过matplotlib绘制。下面就matplotlib.pyplot列举一个示例,涉及到绘制legend,特殊符号,设置坐标轴Ticks。

    1. 首先,我们先生成序列,用于绘制曲线。
    import matplotlib.pyplot as plt
    import matplotlib.ticker as tkr
    import numpy as np
    x = np.arange(-5,5,0.1);
    y1 = np.sin(2*x+np.pi/3);
    y2 = np.cos(x);
    
    1. 新建figure,获取figure的句柄。
    myfig = plt.figure(21);
    
    1. 新建plot。这里使用一种可以自定义plot位置和大小的方式新建一个plot。当然也可以使用plt.subplot()来实现新建plot。通过调整[left, bottom, width, height]四个参数可以调节plot的位置和大小(width,height)。
    ### And plot to figure: [left, bottom, width, height]
    ax1 = myfig.add_axes([0.2,0.2,0.5,0.32]);
    
    1. 绘制曲线。
    ax1.plot(x,y1,label="y1");
    ax1.plot(x,y2,label="y2");
    
    1. 绘制坐标轴label。在绘制Y轴的label时,使用了一个特殊符号‘℃’,该符号的Unicode编码为\u2103,Unicode编码之前的字符u表示Unicode。
    plt.xlabel("Time (s)");
    ## set y label a unique char (degree centigrade)
    plt.ylabel(("%s%c%s") % ("Temperature(",u"\u2103",")"));
    
    1. 设置两次plot的legend。如果需要单独控制每条曲线(符号)的legend,在上述4步骤中应该在plot时获取plot和axis的句柄。详情可参考文末列出的参考网站(matplotlib的官方文档)。
    ## set legend
    ax1.legend(loc='upper left',fontsize=8);
    
    1. 设置坐标轴的Ticks。下面分别展示两种不同方法。设置X轴ticks的方法可以指定major ticks,minor ticks的间隔,在科学绘图中应该是非常有用了,还可以设置ticks的显示格式,此处只显示了浮点数位数的控制,实际上还有很多格式控制可选,包括百分比(%)等。设置Y轴的ticks时,使用的方法可以具体控制每个位置(值)的ticks名称。更多的设置可参考文末列出的参考网站(matplotlib的官方文档)。
    ## set X axis's ticks (major and minor)
    ax1.xaxis.set_major_locator(tkr.MultipleLocator(2.0));
    ax1.xaxis.set_minor_locator(tkr.MultipleLocator(1.0));
    ## set the str format of major ticker of X axis
    ax1.xaxis.set_major_formatter(tkr.FormatStrFormatter("%2.1f"));
    ## set Y axis's ticks
    ###         position   str
    plt.yticks((-1,1),('Low','High'));
    plt.ylim((-1.2,1.2));
    
    1. 希腊字母,上下标的输出。
    ## write formulus to plot
    plt.text(1.3,0.8,r'('+'$\mu\mathrm{mol}$'+' '+'$m^{-2}.s^{-1})$'+' $A_n$',fontsize=15,horizontalalignment='center',verticalalignment='center');
    
    1. 保存图片,可选的格式很多了,包括png,pdf,tif等。
    # Save figure
    plt.savefig("./pyplotLegend.pdf",dpi=600,format='pdf');
    

    展示下结果图


    pyplot_legend_demo1.png

    参考网站

    https://matplotlib.org/api/_as_gen/matplotlib.pyplot.text.html?highlight=pyplot%20text#matplotlib.pyplot.text

    感谢提供强大matplotlib库,详尽使用文档的python社区全体开发,维护者。

    相关文章

      网友评论

          本文标题:matplotlib.pyplot绘制legend、特殊符号、设

          本文链接:https://www.haomeiwen.com/subject/suobaftx.html