Python数据分析基础技术之Matplotlib

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

鉴于Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。

matplotlib 官网 http://matplotlib.org/ 点击 docs 查阅参考文档和 API(方法和模块)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、Matplotlib基本线图绘制

导入库模块:

import numpy as np        
import matplatlib.pyplot as plt    

定义图像定义域:

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)      #-pi和pi之间取256个点,并包含最后一个点

定义图像函数:

 c, s = np.cos(x), np.sin(x) 

绘图:

plt.figure(1)  #制定为图1
plt.plot(x, c, color='blue', linewidth=1.0, linestyle='-', label="Cos", alpha=0.2)    #自变量,因变量,线颜色,线宽,图像标签,透明度

plt.plot(x, s, "r*", label="Sin")        #另一种制定方式, r代表red,*代表线型

# 设置横轴的上下限
plt.xlim(-4.0,4.0)

# 设置纵轴的上下限
plt.ylim(-1.0,1.0)

plt.title("Cos & Sin")     #图像标题

plt.show()

在这里插入图片描述
显示两个坐标轴(通过对图1四周的边线来显示坐标轴):

ax = plt.gca()     # gca就是轴的一个编辑器
   
ax.spines["right"].set_color("none")     # spines 是四周的边线,none代表隐藏(右边)
ax.spines["top"].set_color("none")       # spines 是四周的边线,none代表隐藏 (上面)

ax.spines["left"].set_position(("data", 0))       # 位置设置到数据域的 0 位置
ax.spines["bottom"].set_position(("data", 0))    #位置设置到数据域的 0 位置

plt.show()

在这里插入图片描述
设置坐标轴的记号:

ax.xaxis.set_ticks_position('bottom')        #设置x轴的标注位于横轴的下面

ax.yaxis.set_ticks_position('left')       #设置y轴的标注位于纵轴的左边

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$'])  注意这里使用了 LaTeX。

plt.yticks(np.linspace(-1,1,5,endpoint=True))    #纵轴设置5个记号

for label in ax.get_xticklabels() + ax.get_yticklabels():    #get获取记号,设置记号字体大小和颜色
    label.set_fontsize(20)
    label.set_bbox(dict(facecolor="white", edgecolor="None", alpha=0.2))     # facecolor背景颜色,edgecolor边缘颜色,alpha透明度
    
legend(loc='upper left')     #图例,loc位置为上左
plt.grid()        #显示网格线
plt.axis([-np.pi,-np.pi, -1, 1])      #指定图像显示范围,前两个是横轴,后两个是纵轴

plt.show()

在这里插入图片描述
填充和注释功能:

plt.fill_between(x, np.abs(x) < 0.5, c, c > 0.5, color="green", alpha=0.25)    # 在c>0.5的区域内填充函数y=np.abs(x)<0.5与c函数包围的区域  ,对于函数y=np.abs(x)<0.5是分段函数,-0.5-0.5为1,其余区间为0

t = 1     #在t等于1的位置注释
plt.plot([t, t], [0, np.cos(t)], "y", linewidth=3, linestyle="--")     #(t,0)到(t,cos(t))添加注释(y代表黄色),线型为虚线
plt.annotate("cos(1)", xy=(t, np.cos(1)), xytest=(1.5,0.6),testcoords="offset points",
                 arrowprops=dict(arrow,facecolor="black",shrink=0.05,connection))  

#annotate参数详解:
——“标注”
——xy=(横坐标,纵坐标) :箭头尖端
——xytext=(横坐标,纵坐标):文字的坐标,指的是最左边的坐标,
——arrowprops= {facecolor= '颜色',shrink = '数字' <1  收缩箭头 }      
  
plt.show()

在这里插入图片描述

2、子图与多种图形绘制

猜你喜欢

转载自blog.csdn.net/qq_42415326/article/details/89599469
今日推荐