• Matplotlib是Python最著名的绘图库之一,提供了一整套和MATLAB相似的命令API,既适合交互式地进行制图,也可以作为绘图控件方便地嵌入GUI应用程序中
• Matplotlib的pyplot子库提供了和MATLAB类似的绘图API,方便用户快速绘制2D图表,包括直方图、饼图、散点图等
• Matplotlib配合NumPy等模块使用,可以实现科学计算结果的可视化显示
import matplotlib.pyplot as plt #导入matplotlib包
%matplotlib inline #在notebook中显示图
import numpy as np
x = np.linspace(0.05, 10, 1000) #等间隔取1000个数
y = np.sin(x)
plt.plot(x,y)
plt.show()
plt.plot(y)
plt.show()
plt.plot(y,'r') #‘r’是红色,
plt.show()
关于颜色
character | color |
---|---|
‘b’ | blue |
‘g’ | green |
‘r’ | red |
‘c’ | cyan(蓝绿色) |
‘m’ | magenta(紫红色) |
‘y’ | yellow |
‘k’ | black |
‘w’ | white |
常用的Markers类型
字符 | 类型 |
---|---|
’ . ’ | 点 |
’ , ’ | 像素点 |
’ o ’ | 圆点 |
’ v ’ | 下三角点 |
’ ^ ’ | 上三角点 |
’ < ’ | 左三角点 |
’ > ’ | 右三角点 |
’ 1 ’ | 下三叉点 |
’ 2 ’ | 上三叉点 |
’ 3 ’ | 左三叉点 |
’ 4 ’ | 右三叉点 |
’ s ’ | 正方点 |
’ p ’ | 五角点 |
’ * ’ | 星形点 |
’ h ’ | 六边形点1 |
’ H ’ | 六边形点2 |
’ + ’ | 加号点 |
’ x ’ | 乘号点 |
’ D ’ | 实心菱形点 |
’ d ’ | 瘦菱形点 |
’ l ’ | 竖线点 |
’ _ ’ | 横线点 |
Line Style
字符 | 类型 |
---|---|
’ - ’ | 实线 |
’ – ’ | 虚线 |
’ -. ’ | 虚点线 |
’ : ’ | 点线 |
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
x = np.linspace(1,10,10)
y = x**2
plt.plot(x, y, color = '#ff3456',marker='*', linestyle='--')
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x, y,'b*')
plt.plot()常用参数
linewidth #线宽
alpha #透明度 0-1
drawstyle #描点方式
• linewidth :定义线条的宽度,可取任意实数。
• alpha :定义线条的透明度,一般取值[0,1]之间。
• drawstyle :定义描点方式(‘default’ , ‘steps’, ‘steps-pre’, ‘steps-mid’, ‘steps-post’)。
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'b*-',linewidth=10,alpha=0.3, drawstyle='steps')
常用的图像设置命令
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] # 用来显示正常的中文标签
plt.rcParams[‘axes.unicode_minus’] = False #用来正常显示负号
• plt.title() :设置图像标题。
• plt.xlim() :设置x轴显示范围。
• plt.ylim() :设置y轴显示范围。
• plt.xlabel() :设置x轴名称。
• plt.ylabel() :设置y轴名称。
• plt.grid() :显示坐标网格线。
plt.axhline() #绘制平行于x轴的线
plt.axvline() #绘制平行于y轴的线
plt.axhspan() #绘制平行于x轴的区域
plt.axvspan() #绘制平行于y轴的区域
• plt.legend() :标示不同图形的文本标签图例。
• plt.xticks() :设置x轴的标签名称。
• plt.yticks() :设置y轴的标签名称。
• plt.text() :添加图形内容细节的无指向型注释文本。
• plt.annotate() :添加图形内容细节的指向型注释文本。
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'b*-',linewidth=10,alpha=0.3, drawstyle='steps')
plt.title('打手犯规')
plt.xlim(2,6)
plt.xlabel('asdasd')
plt.ylabel('qowuoe')
plt.grid(color='r')
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'b*-',linewidth=10,alpha=0.3, drawstyle='steps')
plt.title('打手犯规')
plt.xlim(2,6)
plt.xlabel('asdasd')
plt.ylabel('qowuoe')
plt.axhline(0.5,c = 'black')
plt.axvline(3,c = 'y')
plt.axhspan(-0.25,0.25, color = 'r',alpha = 0.5)
plt.grid(color='r')
x = np.linspace(0,10,10)
y = np.cos(x)
y1 = np.sin(x)
plt.plot(x,y,label='a')
plt.plot(x,y1,label='q')
plt.legend()
plt.xticks([0,2,4,6,8,10],['a','b','c','d','e','f'])
plt.yticks([0],['零线'])
plt.text(1.5,0,'y = cos(x)',weight = 'bold',color = 'b')
plt.annotate("最大值", xy = (0,1),xytext = (0.8,1),arrowprops = dict(arrowstyle = '->'))
plt常见的二维图形绘制命令
plt.bar() #柱状
plt.barh() #条形
plt.hist() #直方图
plt.pie() #饼图
plt.polar() #极线图
plt.scatter() #散点图或气泡图
plt.stem() #棉棒图
plt.boxplot() #箱线图
plt.errorbar() #误差棒图
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
x = np.linspace(-10, 10, 50)
y = np.sin(x)
plt.plot(x,y,markerfacecolor = 'r',marker = 'o',c='b',linestyle='--',markeredgecolor='b',markersize=8)
plt.title('my picture')
plt.xlim(-10,10)
plt.xlabel('x')
plt.ylabel('y')
plt.grid()
plt.text(0,0,'(0,0)',weight = 'bold')
plt.annotate('(-5,0)', xy=(-5,0), xytext=(-2.5,0.5),size=13, arrowprops=dict(facecolor='green',shrink=2))