导入
import matplotlib.pyplot as plt
import numpy as np
解决中文显示问题
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
基本图形
'''
绘制线条或标记的轴。参数是一个可变长度参数,允许多个X、Y对可选的格式字符串
plot(y) #如果只接收到一个值就默认为y值 ,而x默认为从0 到 n ,使用默认的线条样式和颜色
绘图中用到的直线属性包括:
(1)LineStyle:线形
(2)LineWidth:线宽
(3)Color:颜色
(4)Marker:标记点的形状
(5)label:用于图例的标签
line1 = plt.plot(x, y1, color='green', linewidth=1.0, linestyle='--')
line2= plt.plot(x, y2, color='blue', linewidth=1.0, linestyle='-')
# 设置A,B线条的标注并打印下来//handle指放入legend中的线条,labels给线条取名字,loc取legend位置
plt.legend(handles=[line1, line2], labels=['sin(x)', 'cos(x)'], loc='best')
'''
x = np.arange(-3,3,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
#图形,matplotlib中的所有图像都是位于figure对象中,一个图像只能有一个figure对象。matplotlib 的 figure 就是一个 单独的 figure 小窗口, 小窗口里面还可以有更多的小图片.
plt.figure(num=3,figsize=(8,6))
plt.plot(x,y1,color='m',label='sin')
plt.plot(x,y2,color='r',linestyle='dashed',label='cos')#marker='o'
# plt.plot(x,y1,x,y2)
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.title('正旋余旋图')
#抽取图,对四边进行操作。隐藏上部和右部
ax = plt.gca()
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
# plt.xlim(-1,1) # 设置x轴的取值范围
plt.legend(loc='upper left')
plt.show()
subplot
subplot(numRows, numCols, plotNum)
x1 = [1,2,3]
y1 = [7,8,9]
y2 = [6,5,4]
plt.figure()
plt.subplot(121) #总共一排两列,当前是第一个
plt.plot(x1,y1)
plt.subplot(122)#当前是第一个
plt.plot(x1,y2)
plt.savefig('a1.png')#保存图像
plt.show()
Matplotlib柱状图
matplotlib.pyplot. bar (*args, **kwargs)
'''
数据设置
'''
# 数据
data = np.array([300,400,500,600])
# 数量
n = 3
#宽度
width = 0.6/n
# 数据标量 柱子的组数
x = np.arange(1,5)
# 创建一个图形
plt.figure()
# 绘制图形
plt.bar(x,height = data,width = width,color = 'red',label = 'red',align = 'center' )
plt.bar(x-width,height = data+50,width = width,color = 'blue',label = 'blue',align = 'center' )
plt.bar(x+width,height = data+50,width = width,color = 'yellow',label = 'yellowue',align = 'center' )
# 设置文本
for m,n in zip(x,data):
plt.text(m,n+10,'%d'%n,ha = 'center')
plt.text(m-width,n+50+10,'%d'%(n+50),ha = 'center')
plt.text(m+width,n+50+10,'%d'%(n+50),ha = 'center')
# 设置标题
plt.title('一季度旅游数据')
# 设置x,y轴标签
plt.xlabel('浮云牧场')
plt.ylabel('人次/万')
# 控制x y 轴的刻度
plt.xticks(np.arange(1,5),[str(i)+'月' for i in range(1,5)])
plt.yticks(np.arange(100,600,100))
# 设置周边框
ax = plt.gca()
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
# 生成图例
plt.legend(loc = 'upper left')
# 保存图片
# plt.savefig('aa.jpg')
plt.show()
Matplotlib直方图
x=np.random.randn(10000).cumsum()
plt.figure()
plt.hist(x,1000,color='red',alpha=0.7)
plt.grid(True)
plt.show()
Matplotlib散点图
# 数据
x = np.random.rand(1000)
y = np.random.randn(1000)
# 绘图
plt.figure()
plt.scatter(x,y,c = np.random.rand(1000,4),s = np.random.random(1000)*100)
plt.show()
Matplotlib线图
'''
figure 图形
'''
x = np.arange(-3,3,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建一个图形
plt.figure()
plt.plot(x,y1)
plt.figure(num = 3,figsize = (8,6)) #弹出figure =3 (8,6)是大小
plt.plot(x,y2)
plt.show()
Matplotlib饼图
# 设置数据
x = np.array([15,20,25,30,10])
# 设置距离
explode = [0,0,0,0.2,0]
# labels
labels = ['网络购物','旅游交通','日常生活','女朋友','游戏']
# color
colors = ['r','b','g','y','m']
plt.figure()
plt.pie(x,explode = explode,labels = labels,colors= colors,labeldistance=1.2,startangle = 90,shadow=True,autopct = '%.2f%%',pctdistance=0.5)
# plt.title('明细')
plt.axis('equal')
plt.show()