利用matplotlib进行数据可视化

matplotlib是python中的一个画图库,继承了matlib(从名字上也看得出来)的优点和语法,所以对于熟悉matlib的用户来说是十分友好的。

pylab和pyplot

关于pylab和pyplot,人们做过不少的讨论。这两个模块有哪些不同呢?pylab模块跟matplotlib一起安装,而pyplot则是matplotlib的内部模块。两者的导入方法有所不同,可选择其中一种进行导入。

from pylab import *

#或

import matplotlib.pyplot as plt

import numpy as np

pylab在同一命名空间整合了pyplot和Numpy的功能,因此无需再单独导入Numpy。更进一步来说,导入pylab后,pyplot和Numpy的函数就可以直接调用,而不用再指定其所属模块(命名空间),从而使得matplotlib开发环境更像是Matlab。

plot(x,y)

array([1,2,3,4])

#而不用指定模块名称

plt.plot()

np.array([1,2,3,4])

大多情况下,我们更乐意使用pyplot模块。

线状图

这里我使用jupyter来进行演示

ipython qtconsole --matplotlib inline

用matplotlib生成这个图表很简单,一行代码就能搞定

plt.plot([1,2,3,4])

plt.show()

1.png

如图所示,生成了一个Line2D对象。该对象为一条直线,它表示图表中各数据点的线性延伸趋势。我们可以看出,列表中的数据直接被作为y轴的值展示了出来,x周是从0开始的,所以我们要看一个数据的折线图,只用输入一个list即可。

但我们可以看出这个图可能还很简陋,比如有如下几个问题:

y轴显示为啥是0.5为步长间隔,我想以1为步长间隔

我想控制x轴展示的值,而不是从0开始

图太小了,能否控制大小

x轴和y轴字太小了,能否控制大小

给x轴和y轴命个名吧

没有网格看不清

没有图例

给线状图标上点

我想保存图片到本地

怎么画子图呢

接下来我们就一个一个解决。

1.设置x轴和y轴步长间隔

控制x轴,y轴显示的值,有两个参数

xticks(ticks, [labels], **kwargs)

yticks(ticks, [labels], **kwargs)

ticks:控制显示的位置,也就是显示那几个值,这几个值必须在y值数据的范围内,这里也就是[1,4]这个范围。

[labels]:控制显示在对应位置的值,可以是数也可以是字符。

y = [1,2,3,4]

step = 1

plt.yticks([i for i in y if i%step == 0])

plt.plot(y)

2.png

2.x轴展示的值

这里展示了坐标轴显示字符的情况。

注意第五行,我改成了[1,2,3,3.5,4],所以显示出来就多了个3.5。

y = [1,2,3,4]

scale_ls = range(4)

index_ls = ["富强","民主","文明","和谐"]

plt.xticks(scale_ls,index_ls)

plt.yticks([1,2,3,3.5,4])

plt.plot(y)

Snipaste_2018-10-10_13-17-55.png

3.控制图表大小

控制图表的大小要用到的几个方法

rcParams:这个参数是用来设置一些配置参数的,比如这里我就用到了大小和dpi

figure.figsize:控制大小,参数为一个二元组(x,y),即长、宽

figure.dpi:控制dpi

plt.rcParams[‘figure.figsize‘] = (10,5)

plt.rcParams[‘figure.dpi‘] = 200

y = [1,2,3,4]

scale_ls = range(4)

index_ls = ["富强","民主","文明","和谐"]

plt.xticks(scale_ls,index_ls)

plt.yticks([1,2,3,3.5,4])

plt.plot(y)

这里可以看出更大更清晰了

3.png

4.调节x轴和y轴字体大小

这里控制字体大小用到的也是xticks和yticks,只不过使用到了fontsize参数。

plt.rcParams[‘figure.figsize‘] = (10,5)

plt.rcParams[‘figure.dpi‘] = 200

y = [1,2,3,4]

scale_ls = range(4)

index_ls = ["富强","民主","文明","和谐"]

plt.xticks(scale_ls,index_ls,fontsize=20)

plt.yticks([1,2,3,3.5,4],fontsize=20)

plt.plot(y)

Snipaste_2018-10-10_13-46-03.png

5.给x轴和y轴加上名字

使用

xlabel(str,fontsize=int )

ylabel(str,fontsize=int )

plt.rcParams[‘figure.figsize‘] = (10,5)

plt.rcParams[‘figure.dpi‘] = 200

y = [1,2,3,4]

scale_ls = range(4)

index_ls = ["富强","民主","文明","和谐"]

plt.xticks(scale_ls,index_ls,fontsize=20)

plt.yticks([1,2,3,3.5,4],fontsize=20)

plt.xlabel("核心价值观", fontsize=20)

plt.ylabel("顺序", fontsize=20)

plt.plot(y)

Snipaste_2018-10-10_13-50-42.png

6.加上网格

plt.grid(True),加上横纵两种网格。

plt.grid(True,axis="x"),加上x轴网格。

plt.rcParams[‘figure.figsize‘] = (10,5)

plt.rcParams[‘figure.dpi‘] = 200

y = [1,2,3,4]

scale_ls = range(4)

index_ls = ["富强","民主","文明","和谐"]

plt.xticks(scale_ls,index_ls,fontsize=20)

plt.yticks([1,2,3,3.5,4],fontsize=20)

plt.xlabel("核心价值观", fontsize=20)

plt.ylabel("顺序", fontsize=20)

plt.grid(True,axis="both")

plt.plot(y)

Snipaste_2018-10-10_14-01-54.png

7.加上图例

使用legend方法,里面有这么几个参数

handles:代表使用的是那几个曲线的对象

labels:代表对应的图例文字

loc:放置的位置

prop:额外参数,例如size,控制图例大小

t = np.arange(0, 2.5, 0.01)

y1 = map(math.sin, math.pi*t)

y2 = map(math.cos, math.pi*t)

l1, = plt.plot(list(y1))

l2, = plt.plot(list(y2))

plt.legend(handles = [l1, l2], labels = [‘Sin‘, ‘Cos‘], loc = ‘best‘, prop={‘size‘: 20})

Snipaste_2018-10-10_14-13-29.png

8.给线状图标点

只用在plot加入参数marker 即可

t = np.arange(0, 2.5, 0.1)

y1 = map(math.sin, math.pi*t)

y2 = map(math.cos, math.pi*t)

l1, = plt.plot(list(y1), marker = "o")

l2, = plt.plot(list(y2), marker = "*")

plt.legend(handles = [l1, l2], labels = [‘Sin‘, ‘Cos‘], loc = ‘best‘, prop={‘size‘: 20})

Snipaste_2018-10-10_14-19-11.png

9.保存图片到本地

只用在最后使用savefig 方法

plt.savefig(‘test.png‘,dpi=400)

10.画子图

这里使用到了subplot方法

他有三个参数,分别为

几行

几列

第几个

举个栗子

subplot(2,2,1) 2行2列(即子图排列为田字格形状)第一个

subplot(2,1,2) 2行1列(即子图排列为纵向两个图形状)第二个

t = np.arange(0, 2.5, 0.1)

y1 = map(math.sin, math.pi*t)

y2 = map(math.cos, math.pi*t)

plt.subplot(2, 1, 1)

plt.title("Sin", fontsize=20)

l1, = plt.plot(list(y1), marker = "o")

plt.subplot(2, 1, 2)

plt.title("Cos", fontsize=20)

l2, = plt.plot(list(y2), marker = "*")

这里我还使用到了title方法,给对应图表加上了标题。

Snipaste_2018-10-10_14-27-58.png

原文地址:https://blog.51cto.com/14735789/2475263

时间: 2024-08-01 07:11:35

利用matplotlib进行数据可视化的相关文章

python数据分析实战-第7章-用matplotlib实现数据可视化

第7章 用matplotlib实现数据可视化 149 7.1 matplotlib库 149 7.2 安装 150 7.3 IPython和IPython QtConsole 150 7.4 matplotlib架构 151 7.4.1 Backend层 152 7.4.2 Artist层 152 7.4.3 Scripting层(pyplot) 153 7.4.4 pylab和pyplot 153 7.5 pyplot 154 7.5.1 生成一幅简单的交互式图表 154 123 import

使用 jupyter-notebook + python + matplotlib 进行数据可视化

上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来! 为了方便看出已完成订单的趋势,又不想想到使用Excel, 想到手动绘制表格填入数据就充满了抵触,哈哈,能用代码完成的事绝不手操,不能愧对python! 先确保python环境和pip已经安装好 这个过程分为3步: 安装 jupyter-notebook  ——>  安装matplotlib  ——> 写代码

Ceph mgr Zabbix module ceph利用Zabbix+Granfana数据可视化展示

Ceph mgr Zabbix module 2020年1月8日 14:54 Ceph 数据可视化. ceph分布式存储数据可视化通过Zabbix+Ceph mgr+Granfana来做ceph的数据可视化展示,利于大屏幕展示.主要展示内容有ceph的集群状态.mon状态数量.pools数量.Ceph Storage Usage饼图.pgs总数等等还是很强大的. 参考文献 https://ceph.io/community/new-luminous-zabbix/ https://docs.ce

基于matplotlib的数据可视化

matplotlib.pyplot(as mp or as plt)提供基于python语言的绘图函数 引用方式: import matplotlib.pyplot as mp / as plt 本章内容拟按官方手册(NumPy Reference, Release 1.14.5 )中的 plt 形式 像matlab一样,matplotlib.pyplot是一些命令样式函数. pyplot函数都可以创建图形.再图形中创建绘图区.再绘图区中画线.用标签装饰图形等操作. 在pyplot的函数调用中,

python matplotlib(数据可视化)

吐槽 网上搜了不少matplotlib安装方法(不信,你可以试试.) 我只能说,除了太繁琐,就是没什么用! 如果你是python3.6.5版本 我给你最最最正确的建议: 直接打开cmd,找到pip用命令pip install matplotlib pip帮你解决所有问题,不信可以试试!(帮你安装numpy......) 博主不吹不黑!亲自尝试! 看了许多要么繁琐要么没什么用的东西还照着搞了几个小时,心情着实不好! 顺便说一句,如果你安装的时候不小心断电了或者你老妈拔了你的网线让你去相亲,记得用

基于matplotlib的数据可视化 - 三维曲面图gca

1 语法 ax = plt.gca(projection='3d')ax.plot_surface(x,y,z,rstride=行步距,cstride=列步距,cmap=颜色映射) gca(**kwargs) 在当前图像上,获取与给定关键字args匹配的当前Axes的当前Axes实例,若不存在,则会返回一个新创建的实例. 帮助文档中的一个示例 plt.gca(projection='polar') If the current axes doesn't exist, or isn't a pol

MachineLearning入门-8(数据可视化)

为了生成最优化的算法模型,必须对数据进行理解.最快.最有效的方式是通过数据的可视化来加强对数据的理解. 接下来将通过matplotlib对数据可视化,以加强对原始数据集的理解. 单一图表 直方图(Histogram)又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据的分布情况.一般用横轴表示数据类型,纵轴表示分布情况.直方图可以非常直观展示每个属性的分布情况.通过图表可以很直观地看到数据是高斯分布.指数分布还是偏态分布.代码如下 1 from pandas import

Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据

Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据 ??matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. ??它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. ??在Linux下比较著名的数据图工具还有gnuplot

Python - matplotlib 数据可视化

在许多实际问题中,经常要对给出的数据进行可视化,便于观察. 今天专门针对Python中的数据可视化模块--matplotlib这块内容系统的整理,方便查找使用. 本文来自于对<利用python进行数据分析>以及网上一些博客的总结. 1  matplotlib简介 matplotlib是Pythom可视化程序库的泰斗,经过几十年它仍然是Python使用者最常用的画图库.有许多别的程序库都是建立在它的基础上或直接调用它,比如pandas和seaborn就是matplotlib的外包, 它们让你使用