matplotlib的基本操作:
1.1 matplotlib 可视化:
前置包:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
绘制单一曲线:
plt.plot(x,f(x),style) default f(x) = x typeof(x) = np.ndarray
ndarray x = np.asarray(list x)
包含多个曲线:
多个plot /or/ 一个plot传入多对x,y 的值
网格线
plt.grid() 也有样式哈
子视图
plt.figure(figsize = [length,width]
#创建空白图
axes = plt.subplot(nrows, ncols, index, **kwargs)
index :左上为1 右下为row*col
plt.figure(figsize=[15,15])
axes = plt.subplot(2,2,1)
axes1 = plt.subplot(3, 3, 9)
plt.show()
坐标轴界限:
axis(): no arg return bound
axis([x_min,x_max,y_min,y_max])
xlim()/ylim():
plt.xlim(x_min,x_max)
坐标轴的标签:
xlabel(‘String’,size = ,rotation = )
ylabel(‘’)
标题
plt.title()
if chinese :
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname = ’ ')
plt.title(‘’ , fontproperties = “SimHei”)
图例:
x = np.asarray([1,2,3,4])
plt.plot(x,x,label = 'example')
plt.legend()
plt.show()
legend([‘content_of_label’],loc = row,ncol = col)
修改线条样式:
- linestyle:线的风格类型
- color:颜色
- marker:标记
保存图片:
savefig()
设置plot的风格和样式:
颜色:‘color’/‘简写’
透明度:arg:alpha = float
backcolor (subplot) facecolor/fc
线型:linestye/ls
线宽:linewidth/lw
x,y坐标轴的刻度:
xticks / yticks:
x = np.random.randn(100)
plt.plot(x.cumsum())#cumsum==>计算累加值
#绘制坐标
plt.xticks(np.arange(0,100,16),list('ABCDEFG'))
#换种方式
plt.xticks(np.linspace(0,100,7),list('ABCDEFG'))
#设置y轴的标签并设置大小
plt.yticks(np.linspace(-10,20,3),['min',0,'max'],fontsize = 15)
#还可以对x轴设置标签的角度
plt.xticks(np.linspace(0,100,7),list('ABCDEFG'),rotation = 90)
example:
import random
x = range(0,120)
y = [random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
xtick_lable = ['10点{}分'.format(i) for i in range(60)]
xtick_lable += ['11点{}分'.format(i) for i in range(60)]
plt.xticks(list(x)[::3],xtick_lable[::3],rotation = 45,fontproperties = "SimHei")
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3AjbEgdd-1664415851470)(C:\Users\wdnmd\AppData\Roaming\Typora\typora-user-images\image-20220928152213245.png)]、
)]
plt.xticks(list(x)[::3],xtick_lable[::3],rotation = 45,fontproperties = “SimHei”)
plt.show()