Matplotlib
使用前需要先导入模块
import matplotlib.pyplot as plt
import numpy as np
绘制x点和y点
plot()函数用于在图表中绘制点(标记)
默认情况下,会从点到点之间绘制一条直线
参数1是一个包含x轴上点的数组
参数2是一个包含y轴上点的数组
#从(0,0)到(6,250)画一条直线
xpoints = np.array([0,6])
ypoints = np.array([0,250])
plt.plot(xpoints,ypoints)
plt.show()
2 无线绘图
仅绘图标志,可以使用快捷字符串标识符‘o’
xpoints = np.array([0,6])
ypoints = np.array([0,250])
plt.plot(xpoints,ypoints,'o')
plt.show()
绘制多点
绘制多点需要保证x轴和y轴上点的数量一致
xpoints = np.array([0,6,4,9])
ypoints = np.array([0,6,9,250])
plt.plot(xpoints,ypoints,'o')
plt.show()
默认x轴
如果不指定x轴的点,x轴的坐标会默认从0,1,2开始计算,取决于y轴上点的数量
ypoints = np.array([0,6,9,16])
plt.plot(ypoints)
plt.show()
标记
可以使用关键字参数marker,指定标记强调的点
markersize或者ms设置标记的大小
xpoints = np.array([0,6,9,16])
ypoints = np.array([0,6,9,16])
plt.plot(xpoints,ypoints,marker='o',ms=20)
plt.show()
格式化字符
fmt
marker | line | color
#o标记 :虚线 r红色
plt.plot(xpoints,ypoints,'o:r')
标记参考
标记 | 描述 |
---|---|
‘o’ | Circle |
‘*’ | Star |
‘.’ | Point |
‘,’ | Pixel |
‘x’ | X |
‘X’ | X (filled) |
‘+’ | Plus |
‘P’ | Plus (filled) |
‘s’ | Square |
‘D’ | Diamond |
‘d’ | Diamond (thin) |
‘p’ | Pentagon |
‘H’ | Hexagon |
‘h’ | Hexagon |
‘v’ | Triangle Down |
‘^’ | Triangle Up |
‘<’ | Triangle Left |
‘>’ | Triangle Right |
‘1’ | Tri Down |
‘2’ | Tri Up |
‘3’ | Tri Left |
‘4’ | Tri Right |
‘l’ | Vline |
‘_’ | Hline |
线参考
语法 | 描述 |
---|---|
‘-’ | 实线 |
‘:’ | 虚线 |
‘–’ | 破折线 |
‘-.’ | 点划线 |
颜色参考
语法 | 描述 |
---|---|
‘r’ | Red |
‘g’ | Green |
‘b’ | Blue |
‘c’ | Cyan |
‘m’ | Magenta |
‘y’ | Yellow |
‘k’ | Black |
‘w’ | White |
线型
关键字参数:linestyle或ls更改线条样式
linewidth 设置线的宽度
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
x2 = np.array([1,2,3,4])
y2 = np.array([0,6,9,8])
plt.plot(x1,y1,x2,y2)
plt.show()
xlabel()和ylabel()分别为x轴和y轴设置标签
title()为图设置标题
以上方法中的fontdict参数可以设置标签和标题字体属性
grid()显示网格线 axis指定x轴或y轴 合法取值:both x y
loc定位标题 默认为center 合法取值:left right center
#设置字体
matplotlib.rcParams['font.sans-serif']=['KaiTi']
font1={'family':'serif','color':'blue','size':20}
font2={'family':'serif','color':'darkred','size':16}
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.plot(x1,y1)
plt.title("测试",loc='left')
plt.xlabel("x轴",fontdict=font1)
plt.ylabel("y轴",fontdict=font2)
plt.show()
多图
subplot()可以绘制多个图
subplot根据三个参数设置布局
第一第二分别代表几行几列,第三代表当前图索引
超级标题suptitle()
plt.subplot(2,2,1)
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.plot(x1,y1)
plt.subplot(2,2,2)
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.plot(x1,y1)
plt.suptitle("hello")
plt.show()
散点图
scatter()
该函数一样需要传入两个相同长度的数组分别代表x和y轴
plt.subplot(2,2,1)
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.scatter(x1,y1)
plt.show()
color或c属性设置颜色
s属性更改大小
alpha设置透明度 0-1
颜色图
cmap指定颜色图
colorbar显示
#传入数组可以定义不同颜色和大小
x = np.random.randint(100,size=100)
y = np.random.randint(100,size=100)
colors = np.random.randint(100,size=100)
sizes = np.random.randint(100,size=100)
plt.scatter(x,y,c=colors,alpha=0.6,s=sizes,cmap='viridis')
plt.colorbar()
plt.show()
柱状图
bar()
barh()水平柱状图
属性color width
barh使用height设置高度
x=np.array(['a','b','c','d'])
y=np.random.randint(10,size=4)
plt.bar(x,y)
plt.barh(x,y)
plt.show()
直方图
hist()
x=np.random.normal(60,10,260)
plt.hist(x)
plt.show()
饼图
pie()
label标签 传入的数据只能是数组
startangle 起始角度 默认为0
explode 传入的数据只能是数组 每个数值代表距离圆心的距离
shadow阴影 True 或 False
legend()设置图例 带有参数title
colors 传入的数据只能是数组
y=np.array([10,26,14,60])
label=['apple','potato','clan','flty']
plt.pie(y,labels=label)
plt.legend()
plt.show()