绘制基本流程:
(1)创建画布
(2)准备x y数据
(3)进行绘制图形
(4)进行图形展示
另外再进行 增加图例,增加标题,增加x轴 y 轴标签 ,增加刻度显示,增加网格线显示,y轴刻度更改 ,保存图片,常用RC参数设置,支持中文,支持负号设置
常用RC参数设置:
color=‘r’, linestyle=’:’, linewidth=1.2, marker="*", markersize=7, markerfacecolor=‘b’, markeredgecolor=‘g’
支持中文,支持负号:
plt.rcParams[‘font.sans-serif’]=‘SimHei’
plt.rcParams[‘axes.unicode_minus’]=False
更多线性、颜色参考网址:
https://www.cnblogs.com/darkknightzh/p/6117528.html
例1 :绘制sinx cosx图
import matplotlib.pyplot as plt
import numpy as np
#创建画布
plt.figure()
#默认不支持中文,想用中文,必须用RC参数
plt.rcParams['font.sans-serif']='SimHei' # 设置RC字体 让其支持中文
#默认不支持负号,想要支持负号,必须设置RC参数
plt.rcParams['axes.unicode_minus']=False # 设置RC编码 ,让其支持负数
#进行绘画
#准备x y 数据
#np.pi 就是数学里面的π
#绘制两个图形,需要绘制两次
x = np.arange(0,2*np.pi,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
#进行绘图
plt.plot(x,y1)
plt.plot(x,y2)
#增加图例
plt.legend(['y=sinx','y=cosx'])
#增加标题 # 默认不支持中文
plt.title("x的sin图和cos图")
#增加x轴 y 轴标签 rotation :旋转
plt.xlabel("x值")
plt.ylabel("y值",rotation=0)
#进行图形展示
plt.show()
图示:
例2:绘制天气温度图
import matplotlib.pyplot as plt
import numpy as np
#绘制天气图
#创建画布
plt.figure(figsize=(20,8),dpi=80)
plt.rcParams['font.sans-serif']='SimHei' # 设置RC字体 让其支持中文
plt.rcParams['axes.unicode_minus']=False #
#进行准备数据
#x = ['周一','周二','周三','周四','周五','周六','周天']
x = np.arange(1,8,1)
y = [28,10,30,26,18,29,19]
#进行组合xy 显示折线点 值
for i,j in zip(x,y):
# print(i)
plt.text(i,j+0.5,"%d℃"%j) # j+0.5 显示值的高度+0.5
#增加图例
#plt.legend(['y=sinx','y=cosx'])
#增加x轴 y 轴标签 rotation :旋转
plt.xlabel("日期")
plt.ylabel("温度",rotation=0)
#增加标题 # 默认不支持中文
plt.title("下周北京温度图")
#增加刻度显示
#参数1:刻度显示
#参数2:与之附着的中文
plt.xticks(x,['周一','周二','周三','周四','周五','周六','周天'])
#增加网格线显示 axis:显示那个轴网格 字符串 默认both
plt.grid(b=True,axis="y")
#绘制图形
plt.plot(x,y,color='r', linestyle=':', linewidth=1.2, marker="*", markersize=7, markerfacecolor='b', markeredgecolor='g',label="北京温度图")
"""
color:线条颜色
linestyle:线条形状
linewidth:线条宽度
marker:点的形状
markersize:点的大小
markerfacecolor:点的颜色
markeredgecolor:点的边框颜色
"""
#增加图例: label参数 是右边图例
plt.legend()
#y轴刻度 更改 要在绘制图之后 添加
#增加yticks 进行纵轴均匀显示
y_ticks = np.arange(0,36,1)
print(y_ticks)
#设置y轴刻度 不要改变y值,所以需要另外去定义列表进行更改
plt.yticks(y,y_ticks[::5])
#保存图片
plt.savefig("./下周北京温度变化图.png")
#进行图形展示
plt.show()