创建画布或子图
函数名称 | 函数作用 |
---|---|
plt.figure | 创建一个空白画布,可以指定画布大小,像素。 |
figure.add_subplot | 创建并选中子图,可以指定子图的行数,列数,与选中图片编号。 |
绘制图形
函数名称 | 函数作用 |
---|---|
plt.title | 在当前图形中添加标题,可以指定标题的名称,位置,颜色,字体大小等参数。 |
plt.xlabel | 在当前图形中添加x轴名称,可以指定位置,颜色,字体大小等参数。 |
plt.ylabel | 在当前图形中添加y轴名称,可以指定位置,颜色,字体大小等参数。 |
plt.xlim | 指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
plt.ylim | 指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
plt.xticks | 指定x轴刻度的数目与取值 |
plt.yticks | 指定y轴刻度的数目与取值 |
plt.legend | 指定当前图形的图例,可以指定图例的大小,位置,标签。 |
保存和显示图形
函数名称 | 函数作用 |
---|---|
plt.savafig | 保存绘制的图片,可以指定图片的分辨率,边缘的颜色等参数。 |
plt.show | 在本机显示图形。 |
先导入第三方库和数据
import pandas as pd import matplotlib.pyplot as plt
data = pd.read_csv('./data.csv',encoding= 'gbk',engine='python') data.head()
绘制散点图
# scatter散点图 plt.figure(figsize=(16,9)) plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2]) plt.show()
# 图的基本设置 plt.figure(figsize=(16,9)) plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2]) plt.title('散点图') plt.xlabel('x轴') plt.ylabel('y轴') plt.show()
中文无法显示,将plt设置一下。
# 可移植代码 plt.rcParams['font.sans-serif'] = 'SimHei' ##设置字体为SimHei显示中文 plt.rcParams['axes.unicode_minus'] = False ##设置正常显示符号
# 旋转45° plt.figure(figsize=(16,9)) plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2]) plt.title('散点图') plt.xlabel('x轴') plt.ylabel('y轴') plt.xticks(rotation=45) plt.show()
# 减少x轴刻度 plt.rcParams['font.sans-serif'] = 'SimHei' ##设置字体为SimHei显示中文 plt.rcParams['axes.unicode_minus'] = False ##设置正常显示符号 plt.figure(figsize=(4,3)) plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2]) plt.title('散点图') plt.xlabel('x轴') plt.ylabel('y轴') plt.xticks(data.iloc[0:data.shape[0]:4,1],rotation=45) plt.show()
# 修改x轴刻度上的值 plt.rcParams['font.sans-serif'] = 'SimHei' ##设置字体为SimHei显示中文 plt.rcParams['axes.unicode_minus'] = False ##设置正常显示符号 plt.figure(figsize=(4,3)) plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2]) plt.title('散点图') plt.xlabel('x轴') plt.ylabel('y轴') plt.xticks(data.iloc[0:data.shape[0]:4,1],range(18),rotation=45) plt.show()
# 循环画图 # 加入图例说明,搞定 plt.figure(figsize=(16,9)) for i in range(2,10): plt.scatter(x= data.iloc[:,1],y=data.iloc[:,i]) plt.title('散点图') plt.xlabel('x轴') plt.ylabel('y轴') plt.xticks(data.iloc[0:data.shape[0]:4,1],range(18),rotation=45) plt.legend(data.columns[2:10]) plt.show()
绘制折线图
所有图基本都是一样的画法,只是函数不同而已,只要掌握了一种就全会了的,所以不再详讲。
## 创建画布 plt.figure(figsize=(16,9)) ## 创建画布并设定画布大小 ## 使用循环绘制图形 colors = ['red','yellow','blue','green']## 设定颜色 lineStyle = ['-',':','-.','--'] ## 设定线条类型 Mark = ['o','D','+','*'] ## 设定点的类型 for i in range(4): plt.plot(X[:,i],color=colors[i],linestyle=lineStyle[i],marker = Mark[i]) plt.title('iris数据四个特征的折线图')## 添加标题 plt.xlabel('index') ## 添加x的标签 plt.ylabel('value')##添加y的标签 plt.xlim((0,170)) ## 设定x轴的范围 plt.ylim((0,10)) ## 设定y轴的范围 plt.legend(names) ## 设定图例 plt.show() ## 显示图形
绘制柱状图
plt.figure(figsize=(10,8)) plt.bar(data.iloc[:,0],data.iloc[:,3],color='blue') plt.xlabel('x轴') ## 添加x的标签 plt.ylabel('value')##添加y的标签 plt.show()
plt.figure(figsize=(10,8)) for i in range(2,10): plt.bar(data.iloc[:,0],data.iloc[:,i]) plt.xlabel('x轴') ## 添加x的标签 plt.ylabel('value')##添加y的标签 plt.legend(data.columns[2:10]) plt.show()
绘制饼图
## 饼图 plt.figure(figsize=(6,6))## 将画布设定为正方形,则绘制的饼图是正圆 label= data.iloc[::4,1]##定义饼状图的标签,标签是列表 #explode = [0.01]*data.shape[0]//4+2## 设定各项离心n个半径 plt.pie(data.iloc[::4,2],labels=label,autopct='%.3f%%')## 绘制饼图 plt.title('2017年第一季度各产业生产总值占比饼图') plt.savefig('2017年第一季度各产业生产总值占比饼图.png') plt.show()
但是这么多图突然让我觉得窗口有点多了,怎么办呢?
那就把他们放在一张图里吧。
## 子图 p = plt.figure(figsize=(10,10)) ax = p.add_subplot(2,2,1) for i in range(2,10): plt.scatter(x= data.iloc[:,1],y=data.iloc[:,i]) plt.title('散点图') plt.xlabel('x轴') plt.ylabel('y轴') plt.xticks(data.iloc[0:data.shape[0]:4,1],range(18),rotation=45) plt.legend(data.columns[2:10]) ax = p.add_subplot(2,2,2) #plt.figure(figsize=(10,8)) for i in range(2,10): plt.bar(data.iloc[:,0],data.iloc[:,i]) plt.xlabel('x轴') ## 添加x的标签 plt.ylabel('value')##添加y的标签 plt.legend(data.columns[2:10]) ax = p.add_subplot(2,2,3) for i in range(2,10): plt.plot(data.iloc[:,i]) ax = p.add_subplot(2,2,4) #plt.figure(figsize=(6,6))## 将画布设定为正方形,则绘制的饼图是正圆 label= data.iloc[::4,1]##定义饼状图的标签,标签是列表 #explode = [0.01]*data.shape[0]//4+2## 设定各项离心n个半径 plt.pie(data.iloc[::4,2],labels=label)## 绘制饼图 plt.title('各产业生产总值占比饼图') plt.show()
绘制箱线图
## 创建画布 p = plt.figure(figsize=(16,4)) ## 创建画布并设定画布大小 ## 使用循环绘制图形 for i in range(2,10): ax = p.add_subplot(1,8,i-1) plt.boxplot(data.iloc[:,i]) plt.xlabel(data.columns[i]) ## 添加x的标签 plt.ylabel('value')##添加y的标签 plt.show() ## 显示图形