Python数据分析——Matplotlib数据可视化基础(二)
思维导图:
图形的绘制
认识要绘制的图形
基本绘图流程
pyplot基础图表函数
pyplot饼图的绘制
pie函数
matplotlib.pyplot.pie(x, explode=None, labels=None,
colors=None, autopct=None, pctdistance=0.6,
shadow=False, labeldistance=1.1, startangle=None,
radius=None, … )
- 常用参数及说明如下表所示:
例:
import matplotlib.pyplot as plt
labels = 'Frogs','Hogs','Dogs','Logs'
sizes = [15,30,45,10]
explode = (0,0.1,0,0)
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',
shadow=False,startangle=90)
plt.axis('equal') #x,y方向尺寸相同
plt.show()
pyplot直方图的绘制
bar函数
matplotlib.pyplot.bar(left,height,width = 0.8,
bottom = None,hold = None,data = None,** kwargs )
- 常用参数及说明如下表所示:
例:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('国民经济核算季度数据.npz')
name = data['columns']## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
label = ['第一产业','第二产业','第三产业']## 刻度标签
plt.figure(figsize=(6,5))## 设置画布
plt.bar(range(3),values[-1,3:6],width = 0.5,color='red')## 绘制散点图
plt.xlabel('产业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(3),label)
plt.title('2017年第一季度各产业国民生产总值直方图')## 添加图表标题
plt.show()
pyplot极坐标图的绘制
例:
import numpy as np
import matplotlib.pyplot as plt
N = 10
theta = np.linspace(0.0,2*np.pi,N,endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 2 * np.random.rand(N)
ax = plt.subplot(111,projection='polar')
bars = ax.bar(theta,radii,width=width,bottom=0.0) ##left,height,width
for r,bar in zip(radii,bars):
bar.set_facecolor(plt.cm.viridis(r / 10.))
bar.set_alpha(0.5)
plt.show()
pyplot散点图的绘制
scatter函数
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)
- 常用参数及说明如下表所示:
例:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('国民经济核算季度数据.npz')
name = data['columns'] ## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
plt.figure(figsize=(8,7))## 设置画布
plt.scatter(values[:,0],values[:,2], marker='o')## 绘制散点图
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年季度生产总值散点图')
plt.savefig(‘2000-2017年季度生产总值散点图.png')
plt.show()
pyplot折线图的绘制
plot函数
matplotlib.pyplot.plot(*args, **kwargs)
- plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数主要如下:
- color参数的8种常用颜色的缩写:
例:
plt.figure(figsize=(8,7))## 设置画布
## 绘制折线图
plt.plot(values[:,0],values[:,2],color = 'r',linestyle = '--')
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年季度生产总值折线图')## 添加图表标题
plt.savefig('tmp/2000-2017年季度生产总值折线图.png')
plt.show()
pyplot箱线图的绘制
boxplot函数
matplotlib.pyplot.boxplot(x, notch=None, sym=None,
vert=None, whis=None, positions=None,
widths=None, patch_artist=None,meanline=None,
labels=None, … )
- 常用参数及说明如下表所示:
例:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('国民经济核算季度数据.npz')
name = data['columns']## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
label= ['第一产业','第二产业','第三产业']## 定义标签
gdp = (list(values[:,3]),list(values[:,4]),list(values[:,5]))
plt.figure(figsize=(6,4))
plt.boxplot(gdp,notch=True,labels = label, meanline=True)
plt.title('2000-2017各产业国民生产总值箱线图')
plt.savefig('tmp/2000-2017各产业国民生产总值箱线图.png')
plt.show()