Python使用matplotlib绘图示例

来源:互联网 发布:外贸薪资 知乎 编辑:程序博客网 时间:2024/06/06 20:41

   Python中可以使用matplotlib来实现与MATLAB一样的绘图功能,十分强大,现在简单的一个演示。

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author  : Peidong# @Site    : # @File    : plt.py# @Software: PyCharm# 绘制三角函数import matplotlib.pyplot as pltimport numpy as np# 确定自变量范围X = np.linspace(-np.pi, np.pi, endpoint=True)# 给定两个不同的函数C, S = np.cos(X), np.sin(X)#这里用到了Matplotlib和numpy模块,linspace在(−π,π)之间分成共256个小段,#并把这256个值赋予X。C,S分别是cosine和sine值(X,C,S都是numpy数组)# 绘图plt.figure(1)# 设置标题plt.title("eg1")plt.plot(X, C)plt.plot(X, S)# 显示图像# plt.show()# 设置颜色粗细及标签plt.figure(2)plt.title("eg2")plt.plot(X, C, 'b-', lw=2.5, label="cosine")plt.plot(X, S, 'r-', lw=2.5, label="sine")# 设置标签所在位置plt.legend(loc='upper left')#这里`b-`是`color="blue",linestyle="-"`的简写形式#`lw`=`linewidth`,两种写法都是合理的,但是`b-`这种形式明显更加简洁,也很好理解# 调整坐标轴plt.figure(3)# 设置两个子图f = plt.subplot(211)g = plt.subplot(212)plt.title("eg3")# 选择子图plt.sca(f)plt.plot(X, C, 'b-', lw=2.5, label="cosine")# 设置标签所在位置plt.legend(loc='upper left')# 选择子图plt.sca(g)plt.plot(X, S, 'r-', lw=2.5, label="sine")# 设置标签所在位置plt.legend(loc='upper left')# 设置子图2的坐标范围plt.xlim(X.min()*1.1, X.max()*1.1)plt.ylim(C.min()*1.1, C.max()*1.1)# 调整坐标标度值plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])plt.yticks([-1, 0, 1])# 进一步调整坐标标度值plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],           [r'$-\pi$', r'$-\pi/2$',  r'$0$', r'$\pi/2$',r'$+\pi$'])# 调整坐标轴位置ax=plt.gca()ax.spines['right'].set_color('none') #先把右边和上边的边界设置为不可见ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.spines['bottom'].set_position(('data', 0)) #然后把下边界和左边界移动到0点ax.yaxis.set_ticks_position('left')ax.spines['left'].set_position(('data', 0))# 设置特殊点注释t = 1*np.pi/3#画出需要标注的点plt.plot([t, t], [0,np.sin(t)], color='red', linewidth=2.5, linestyle="--")plt.scatter([t, ], [np.sin(t), ], 50, color='red')plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',         xy=(t, np.sin(t)), xycoords='data',         xytext=(+10, +30), textcoords='offset points', fontsize=16,         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))# 修改坐标轴刻度大小for label in ax.get_xticklabels() + ax.get_yticklabels():    label.set_fontsize(16)    label.set_bbox(dict(facecolor='w',edgecolor='None',alpha=0.4))# 显示图像plt.show()

示例图如下所示:

演示图一:基本绘制


演示图二:打标签调整相关参数


演示图三:自定义图像形式


原创粉丝点击