3.Matplotlib数据可视化基础(下)(散点图、折线图、直方图、饼图、箱线图)

接上文
笔记说明:本文是我的学习笔记,大部分内容整理自 黄红梅,张良均等.Python数据分析与应用[M].北京:人民邮电出版社,2018:52-77. 还有部分片断知识来自网络搜索补充。
可视化这块的内容我以后会专门学习一本参考书然后整理笔记的,现在仅仅是整理上述参考书的一个章节的基础知识。

接上文的目录

    • 2.2折线图
    • 两个栗子!
    • 2.3一个栗子
      • 2.3.1绘制国民生产总值的散点图
      • 2.3.2折线图
  • 3.分析特征内部数据分布与分散状况(直方图、饼图、箱线图)
    • 3.1直方图
    • 3.2饼图
    • 3.3箱线图

2.2折线图

plt.plot()

参数名称 说明
x,y 接收array,表示x轴和y轴对应的数据
color 接收string,指定线条颜色
linestyle 接收string,指定线条类型,默认是"-"
marker 接收string,表示绘制的点的类型,默认是None
alpha 接收0~1的小数,表示点的透明度

两个栗子!

#1.
plt.figure(figsize=(8,7))
plt.plot(values[:,0],values[:,2],color='r',linestyle='--')
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
plt.xlabel("这个就是年份")
plt.ylabel("生产总值")
plt.ylim((0,225000))
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title("各季度国民生产总值折线图")
plt.show()

plt.figure(figsize=(9,7)) 
plt.plot(values[:,0],values[:,2],color='b',linestyle='--',marker='o')
plt.xlabel('这个是年份')
plt.ylim((0,225000))
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('点线图')
plt.show()

#2.
#将多图画出来,利用plt.plot()一次性画三幅图
plt.figure(figsize=(9,7))
#第三个参数同时设置点的颜色、形状和类型
plt.plot(values[:,0],values[:,3],'rD--',values[:,0],values[:,4],'g8-.',
         values[:,0],values[:,5],'y*-')
plt.xlabel('这个还是年份')
plt.ylabel('这个是产值(亿元)')
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('各产业各季度的生产总值,神奇的配色红配绿加点黄')  
plt.legend(['第一产业','第二产业','第三产业'])
plt.show()

2.3一个栗子

数据在这一章最开始的时候就说清楚了,往上翻看。

2.3.1绘制国民生产总值的散点图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
data=np.load("D:\\codes\\python\\国民经济核算季度数据.npz")
name=data['columns']
print(name)
values=data['values']
print(values) ##搞明白数据结构
p=plt.figure(figsize=(15,15))
#子图1.产业图
ax1=p.add_subplot(2,1,1)
plt.scatter(values[:,1],values[:,3],marker='8',c='g')
plt.scatter(values[:,1],values[:,4],marker='o',c='r')
plt.scatter(values[:,1],values[:,5],marker='v',c='b')
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.ylabel('各产业的生产总值')
plt.title('不想写了')
plt.legend(['第一产业','第二产业','第三产业'])

#子图2.
ax2=p.add_subplot(2,1,2)
plt.scatter(values[:,1],values[:,6],marker='o',c='g')
plt.scatter(values[:,1],values[:,7],marker='D',c='r')
plt.scatter(values[:,1],values[:,8],marker='h',c='y')
plt.scatter(values[:,1],values[:,9],marker='+',c='b')
plt.scatter(values[:,1],values[:,10],marker='s',c='c')
plt.scatter(values[:,1],values[:,11],marker='d',c='m')
plt.scatter(values[:,1],values[:,12],marker='v',c='k')
plt.scatter(values[:,1],values[:,13],marker='x',c='brown')
plt.scatter(values[:,1],values[:,14],marker='*',c='purple')
plt.legend(['农','工','建筑','批发','交通','餐饮','金融','房地产','其他'])
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.xlabel('年')
plt.ylabel('数')
plt.show()

2.3.2折线图

p1=plt.figure(figsize=(9,7))
ax3=p1.add_subplot(2,1,1)
plt.plot(values[:,0],values[:,3],'g-',values[:,0],values[:,4],'r-.',
         values[:,0],values[:,5],'b:')
plt.ylabel('各产业的生产总值')
plt.title('不想写了')

ax4=p1.add_subplot(2,1,2)
plt.plot(values[:,1],values[:,6],'r:',
         values[:,1],values[:,7],'g-',
         values[:,1],values[:,8],'c--',
         values[:,1],values[:,9],'m-.',
         values[:,1],values[:,10],'y:',
         values[:,1],values[:,11],'k-',
         values[:,1],values[:,12],'b--',
         values[:,1],values[:,13],'r-.',
         values[:,1],values[:,14],'g:')
plt.legend(['农','工','建筑','批发','交通','餐饮','金融','房地产','其他'])
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.xlabel('年')
plt.ylabel('数')
plt.show()

3.Matplotlib数据可视化基础(下)(散点图、折线图、直方图、饼图、箱线图)_第1张图片

3.分析特征内部数据分布与分散状况(直方图、饼图、箱线图)

3.1直方图

pltbar(x, height, width=0.8, bottom=None, *,   
         align='center', data=None, **kwargs)
参数 说明
left 接受array,表示x轴数据
height 接受array,表示x所代表数据的数量
width 0~1之间的float,指定直方图宽度,默认0.8
color 接收待定string或者包含颜色字符串的array。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
data=np.load("D:\\codes\\python\\国民经济核算季度数据.npz")
name=data['columns']
print(name)
values=data['values']
print(values) ##搞明白数据结构
plt.figure(figsize=(8,7))
plt.bar(range(3),values[-1,3:6],width=0.4)
plt.xlabel('产业')
plt.ylabel('生产总值')
label=['第一产业','二','三']
plt.xticks(range(3),label)
plt.show()

3.2饼图

pie(x, explode=None, labels=None, colors=None,   
     autopct=None, pctdistance=0.6, shadow=False,   
     labeldistance=1.1, startangle=None, radius=None,   
     counterclock=True, wedgeprops=None, textprops=None,  
     center=(0, 0), frame=False, rotatelabels=False, *,   
     data=None)
参数 说明
x 数据
explode 指定项距离圆心n个半径。(就是扇形稍微分开一点)
labels 每一项的名称
color 颜色
autopct 数值的显示方式
pctdistance 每一项的比例显示和距离圆心的半径,默认0.6
labeldistance 每一项名称距离圆心的半径,默认1.1
radius 饼图的半径,默认1
#上栗子!
plt.figure(figsize=(5,5))
label=['第一产业','二','三']
explode=[0.01,0.1,0.01] ##直观看一下这个参数
plt.pie(values[-1,3:6],explode=explode,labels=label,
        autopct='%1.1f%%')
plt.title('不写了')
plt.show()

3.Matplotlib数据可视化基础(下)(散点图、折线图、直方图、饼图、箱线图)_第2张图片

3.3箱线图

boxplot(x, notch=None, sym=None, vert=None, whis=None,   
         positions=None, widths=None, patch_artist=None,   
         bootstrap=None, usermedians=None, conf_intervals=None,   
         meanline=None, showmeans=None, showcaps=None, showbox=None,   
         showfliers=None, boxprops=None, labels=None,   
         flierprops=None, medianprops=None, meanprops=None,   
         capprops=None, whiskerprops=None, manage_xticks=True,   
         autorange=False, zorder=None, *, data=None)
参数 说明
x 接收array,数据
notch 接收boolean,表示箱体是否有缺口,默认none
sym 指定异常点形状,默认none
vert 接收boolean,表示图像是横向还是纵向,默认是none
positions 接收array,图形位置
widths 接收scalar或者array,箱体宽度
labels 箱线图的标签
meanline 接收boolean,是否显示均值线,默认False
plt.figure(figsize=(7,5))
label=['一','二','三']
plt.boxplot(values[:,3:6],notch=True,labels=label,meanline=True)
#数据这块还可以这么写,gdp=(list(values[:,3]),list(values[:,4]),list(values[:,5]))
#plt.boxplot(gdp,notch=True,labels=label,meanline=True)画出来图是一样的。
plt.title('2000~2017三个产业的生产总值')
plt.show()

3.Matplotlib数据可视化基础(下)(散点图、折线图、直方图、饼图、箱线图)_第3张图片

你可能感兴趣的:(python数据分析与应用)