3.Matplotlib数据可视化基础(上)(pyplot、rc参数、散点图、折线图)
笔记说明:本⽂是我的学习笔记,⼤部分内容整理⾃ 黄红梅,张良均等.Python数据分析与应⽤[M].北京:⼈民邮电出版社,2018:52-77. 还有部分⽚断知识来⾃⽹络搜索补充。
可视化这块的内容我以后会专门学习⼀本参考书然后整理笔记的,现在仅仅是整理上述参考书的⼀个章节的基础知识。
注:写在最前⾯。这块知识是可视化这⼀⼤块的内容,很多、很细致,我在整理这个笔记的时候就会不⾃觉⼀直在⽹上搜索更多的知识,对我现阶段⽽⾔太浪费时间了,因为我的主要⽅向不是做可视化的,所以我在后⾯的笔记⾥⾯仅仅呈现出开头提到的那个参考⼯具书的第三章可视化基础的笔记整理。
关于可视化更详细的部分在以后我系统学习完我的知识之后回过头我会整理⼀本专门讲python可视化的⼯具书的笔记的。书已经买好了,就是!!暂时不会看那本书!!
⽂章⽬录
0.本⽂的数据
CSDN的数据不可以免费共享,⾄少要⼀个⾦币,有能⼒的就去下载⼀下。不⽅便的底下头评论留⾔,
留下邮箱号,我看到之后就会把数据发给你,或者你可以在这本书的出版社⽹站或者“泰迪杯数据挖掘⽐赛”的⽹站上这本书的附带资源,都是免费下载的。
1.绘图基础语法与常⽤参数
1.1 pyplot
pyplot绘图的⽅式类似R语⾔⾥⾯的ggplot,是建⽴多个图层来完成同⼀幅图中绘制多个图形。
因此需要在每建⽴⼀个图层之后就添加标题、x轴、x轴的刻度范维、y轴、y轴的刻度范围,然后添加图形,添加图例,保存显⽰。
1.1.1创建画布和⼦图
在⼀幅图时可以省略
plt.figure:空⽩画布
figure.add_subplot(‘⾏’,‘列’,‘选中的⼦图编号’)
1.1.2 添加画布内容
具体参数详见help(func)
plt.title:标题
plt.xlabel:x轴名称
plt.ylabel:y轴
plt.xlim:x轴的范围
plt.ylim:y轴范围
遵循text协议,具体参照
plt.legend:图例
1.1.3 保存与显⽰图形
plt.savafig:保存
plt.show:在本机显⽰
上个栗⼦!
## ⼀个图
help(plt.plot)
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(11)
plt.title(u'随便画⼀条看看')
plt.xlim((0,11))
plt.xlabel(u'X轴名字')
plt.ylim((0,105))
plt.ylabel(u'y轴名字')
plt.plot(data,data**2)
plt.legend('y=x^2')
plt.savefig('D:\\codes\\python\\image\\plot1.png')
plt.show()
## 两个图
# -*- coding: utf-8 -*-
c型钢檩条安装方法rad=np.arange(0,np.pi*2,0.01)
p1=plt.figure(figsize=(15,7),dpi=111)
pic1=p1.add_subplot(1,2,1)#⼀⾏两列的第⼀幅图
plt.title(u'会不会乱码?')
plt.xlabel('x')
plt.xlim((0,1))
plt.ylim((0,1))
plt.ylabel('y')
plt.plot(rad,rad**2)
plt.plot(rad,rad**4)
plt.plot(rad,rad*0+0.5)## 第⼆个y参数⼀定要包含x。只写0.5的话,画不出来这条直线
plt.legend(['y=x^2','y=x^4'])
pic2=p1.add_subplot(1,2,2)#⼀⾏两列的第⼀幅图
plt.title('sin & cos')
plt.xlabel('x')
plt.xlim((0,np.pi*2))
svn使用方法plt.ylim((-1,1))
plt.ylabel('y')
plt.plot(rad,np.sin(rad))
plt.plot(s(rad))
plt.legend(['sin','cos'])
plt.savefig('D:\\codes\\python\\image\\plot2.png')
plt.show()
中⽂还是乱码,开头我已经声明utf8编码了~~
plt.plot(rad,rad*0+0.5) 第⼆个y参数⼀定要包含x。只写0.5的话,画不出来这条直线1.2 设置动态rc参数
rc参数修改之后,绘图时使⽤的默认参数就会发⽣改变
x=np.arange(0,np.pi*6+0.1,0.1)
y=np.sin(x)
plt.plot(x,y,label='$sin(x)$')# $ 的作⽤就是告诉电脑这是个字符串
plt.title("sin")
plt.savefig('D:\\codes\\python\\image\\plot4.png')
plt.show()
这边有个很有意思的逻辑,就是其实这个savefig并不是必须要有的,但是⼀旦写好,
plt.show出来的就是上述名字的照⽚,本例题就是plot4,然后修改rc参数后,
show出来的图⽚并不会更改,依然是plot4,所以修改完rc参数之后要修改照⽚的名字,储存新的照⽚。。
rc参数解释取值
lines.linewidth线条宽度0~10,默认1.5
lines.linestyle线条样式“-”,“–”,“-.”,“:”默认是“-”
lines.marker线条上点的形状“o”“D”“h”“.”“,”“S”等20种
lines.markersize点的⼤⼩0~10,默认1 lines.marker意义lines.marker意义o圆圈.点
D菱形S正⽅形
h六边形1H六边形2
*星号d⼩菱形
-⽔平线v⼀⾓向下的三⾓形
8⼋边形<⼀⾓向左的三⾓形
p五边形>⼀⾓向右的三⾓形
,像素^⼀⾓向上的三⾓形
+加号\竖线
None⽆x X
划重点!中⽂的⽀持
python基础知识整理
pyplot字体不⽀持中⽂,不是编码的问题,需要设置⼀个参数
x=np.arange(0,np.pi*6+0.1,0.1)
y=np.sin(x)
管理系统用什么框架plt.plot(x,y,label='$sin(x)$')# $ 的作⽤就是告诉电脑这是个字符串
plt.title("sin这个中⽂就可以显⽰了")
plt.show()
2.散点图和折线图
2.1 散点图
help(plt.scatter)
scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None,
verts=None, edgecolors=None,*, data=None,**kwargs)
参数说明
x,y接收array,表⽰x,y对应的数据
s接收数值或者⼀维数组,指定点的⼤⼩,若传⼊⼀维数组,则表⽰每个点的⼤⼩
c接收颜⾊参数或者⼀维数组
marker接收待定string,表⽰绘制的点的类型
参数说明
vb滚动条改变颜
alpha接收0~1的⼩数,表⽰点的透明度
颜⾊说明颜⾊说明
b蓝⾊m品红
g绿⾊y黄⾊
r红的k⿊⾊
c青⾊w⽩⾊⼀个栗⼦!
import numpy as np
import matplotlib.pyplot as plt
data=np.load("D:\\codes\\python\\国民经济核算季度数据.npz")
name=data['columns']
values=data['values']
plt.figure(figsize=(9,7))
plt.scatter(values[:,0],values[:,2],marker='o')
np.max(values[:,2])
plt.xlabel("年份")
plt.ylabel("⽣产总值(亿元)")
plt.ylim((0,225000))
# rotation标签旋转⾓度
plt.title("2000~2017各季度国民⽣产总值散点图")
plt.show()
###绘制多个散点
plt.figure(figsize=(9,7))
plt.scatter(values[:,0],values[:,3],marker='o',c='red')
plt.scatter(values[:,0],values[:,4],marker='D',c='green')
go二叉树遍历plt.scatter(values[:,0],values[:,5],marker='>',c='blue')
plt.xlabel('年');plt.ylabel('⽣产总值(亿)')
plt.title("打字好累啊,来回切换输⼊法")
plt.legend(["⼀产业","⼆产业","三产业"])
plt.show()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。