Python数据分析——Matplotlib数据可视化基础(二)

思维导图:

matplotlib数据可视化实战_matplotlib数据可视化实战

图形的绘制

认识要绘制的图形

matplotlib数据可视化实战_plot_02


matplotlib数据可视化实战_数据分析_03

基本绘图流程

matplotlib数据可视化实战_数据分析_04

pyplot基础图表函数

matplotlib数据可视化实战_数据分析_05


matplotlib数据可视化实战_python_06


matplotlib数据可视化实战_数据可视化_07

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()

matplotlib数据可视化实战_plot_08

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()

matplotlib数据可视化实战_数据分析_09

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()

matplotlib数据可视化实战_matplotlib数据可视化实战_10

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()

matplotlib数据可视化实战_数据分析_11

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()

matplotlib数据可视化实战_数据分析_12

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()

matplotlib数据可视化实战_matplotlib数据可视化实战_13