接上文
笔记说明:本文是我的学习笔记,大部分内容整理自 黄红梅,张良均等.Python数据分析与应用[M].北京:人民邮电出版社,2018:52-77. 还有部分片断知识来自网络搜索补充。
可视化这块的内容我以后会专门学习一本参考书然后整理笔记的,现在仅仅是整理上述参考书的一个章节的基础知识。
接上文的目录
- 2.2折线图
- 两个栗子!
- 2.3一个栗子
- 2.3.1绘制国民生产总值的散点图
- 2.3.2折线图
- 3.分析特征内部数据分布与分散状况(直方图、饼图、箱线图)
2.2折线图
plt.plot()
参数名称 |
说明 |
x,y |
接收array,表示x轴和y轴对应的数据 |
color |
接收string,指定线条颜色 |
linestyle |
接收string,指定线条类型,默认是"-" |
marker |
接收string,表示绘制的点的类型,默认是None |
alpha |
接收0~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()
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))
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(['第一产业','第二产业','第三产业'])
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.分析特征内部数据分布与分散状况(直方图、饼图、箱线图)
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.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)
plt.title('2000~2017三个产业的生产总值')
plt.show()
