pandas画图-【老鱼学pandas】
本节主要讲述如何把pandas中的数据用图表的方式显示在屏幕上,有点类似在excel中显示图表。
安装matplotlib
为了能够显示图表,首先需要安装matplotlib库,安装方法如下:
pip3 install matplotlib
显示图表
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 产生1000个随机数
data = pd.Series(np.random.rand(1000))
# 画图表
data.plot()
# 显示图表
plt.show()
在上面的代码中,我们首先创建1000个随机数序列点,然后对这1000个点进行画图表,最后调用plt.show()显示图表。
显示的结果为:

在matplotlib中,如果想要显示图表,需要使用plt.plot()函数,但在pandas中,我们只要对序列数据调用plot()函数就能显示其所拥有的数据,是不是很简单。
显示矩阵数据
显示矩阵中的数据,就会把每列当做一个数据序列进行显示,例如:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 产生1000个4列正态分布的随机数
data = pd.DataFrame(np.random.randn(1000, 4))
# 对其中的数据进行累加,目的是为了能够使例子中显示的曲线有上升波动效果
data = data.cumsum()
# 打印出前几行的数据,方便我们调试其中的数据值
print(data.head())
# 画图表
data.plot()
# 显示图表
plt.show()
其中显示的头几行数据值为:
0 1 2 3
0 0.596323 0.195563 0.037300 0.900385
1 0.186813 2.217155 0.516096 0.623348
2 1.147338 2.362926 2.597531 0.960079
3 1.571033 2.910459 0.947950 0.609487
4 1.783988 3.702685 -0.358119 2.341726
显示的图表为:

还是挺漂亮的图表,有点像股市走势图。:)
只是其中的0,1,2,3这几个列名不大好看,我们可以修改产生数据集中的列名,这样,在显示图表时就能按照数据集中的列名进行显示了。
比如,我们想修改数据集中的列名显示为A、B、C、D:
data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))
这样显示为:

显示散点图
可以用scatter()函数来显示散点图,但其使用方式跟显示图表的有点不一样,主要是此函数是在plot属性中的方法,需要注意一下:
data.plot.scatter(x='A', y='B')
完整的代码为:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 产生1000个4列正态分布的随机数
data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))
# 打印出前几行的数据,方便我们调试其中的数据值
print(data.head())
# 显示散点图
data.plot.scatter(x='A', y='B')
# 显示图
plt.show()
显示图为:

在scatter函数中还可以添加额外的属性,比如可以通过color来指定颜色,通过label来指定标签,我们来看一下:
data.plot.scatter(x='A', y='B', color='DarkBlue', label="Class 1")
显示的图为:

如果我们想要在一张图中再画一下另一个散点图,比如,在上面这个例子中,我们已经显示了横坐标是A纵坐标是B的散点图,现在我们还想把横坐标是A,纵坐标是C的数据也显示在其中,该怎么进行呢?
# 显示散点图
pic1 = data.plot.scatter(x='A', y='B', color='DarkBlue', label="Class 1")
data.plot.scatter(x='A', y='C', color='DarkGreen', label='Class2', ax=pic1)
# 显示图
plt.show()
图片显示为:

更多图形
更多的图形还有:条形图, 直方图, 盒须图, 饼图等,相应的函数名有:bar, hist, box, kde, area, hexbin, pie等(前面不是一一对应的,有兴趣的读者可以自己去试试看。)
pandas画图-【老鱼学pandas】的更多相关文章
- pandas基本介绍-【老鱼学pandas】
前面我们学习了numpy,现在我们来学习一下pandas. Python Data Analysis Library 或 pandas 主要用于处理类似excel一样的数据格式,其中有表头.数据序列号 ...
- pandas选择数据-【老鱼学pandas】
选择列 根据列名来选择某列的数据 import pandas as pd import numpy as np dates = pd.date_range("2017-01-08" ...
- pandas设置值-【老鱼学pandas】
本节主要讲述如何根据上篇博客中选择出相应的数据之后,对其中的数据进行修改. 对某个值进行修改 例如,我们想对数据集中第2行第2列的数据进行修改: import pandas as pd import ...
- pandas处理丢失数据-【老鱼学pandas】
假设我们的数据集中有缺失值,该如何进行处理呢? 丢弃缺失值的行或列 首先我们定义了数据集的缺失值: import pandas as pd import numpy as np dates = pd. ...
- pandas导入导出数据-【老鱼学pandas】
pandas可以读写如下格式的数据类型: 具体详见:http://pandas.pydata.org/pandas-docs/version/0.20/io.html 读取csv文件 我们准备了一个c ...
- pandas合并数据集-【老鱼学pandas】
有两个数据集,我们想把他们的结果根据相同的列名或索引号之类的进行合并,有点类似SQL中的从两个表中选择出不同的记录并进行合并返回. 合并 首先准备数据: import pandas as pd imp ...
- pandas合并merge-【老鱼学pandas】
本节讲述对于两个数据集按照相同列的值进行合并. 首先定义原始数据: import pandas as pd import numpy as np data0 = pd.DataFrame({'key' ...
- tensorflow卷积神经网络-【老鱼学tensorflow】
前面我们曾有篇文章中提到过关于用tensorflow训练手写2828像素点的数字的识别,在那篇文章中我们把手写数字图像直接碾压成了一个784列的数据进行识别,但实际上,这个图像是2828长宽结构的,我 ...
- 二分类问题续 - 【老鱼学tensorflow2】
前面我们针对电影评论编写了二分类问题的解决方案. 这里对前面的这个方案进行一些改进. 分批训练 model.fit(x_train, y_train, epochs=20, batch_size=51 ...
随机推荐
- UVA 1627 Team them up!
https://cn.vjudge.net/problem/UVA-1627 题目 有n(n≤100)个人,把他们分成非空的两组,使得每个人都被分到一组,且同组中的人相互认识.要求两组的成员人数尽量接 ...
- koa-session 记录当前会话内容
最近做毕设需要在nodejs服务器下记录当前用户账号,所用的node框架是koa,所以相对应配套的用了koa-session,发现和之前学的session差不多,都是会话级别的. 一.session和 ...
- redis哨兵(Sentinel)、虚拟槽分区(cluster)和docker入门
一.Redis-Sentinel(哨兵) 1.介绍 Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,r ...
- Unity3d中如何查找一个脚本被挂在那些预设上面?
用一个脚本函数可以获取到选择的脚本文件被哪些预设和场景引用 [MenuItem("Assets/Tool/GetReference")] static void GetRefere ...
- mpvue——动态渲染echarts图表
前言 使用mpvue-echarts来写图表,那个F2再提醒自己下要踩坑不能忘记.遇到了一个问题就是数据不能动态的去渲染,这个其实官方给了我们对应的方法 懒加载 代码 修改了调用initChart() ...
- 【CF1151F】Sonya and Informatics(动态规划,矩阵快速幂)
[CF1151F]Sonya and Informatics(动态规划,矩阵快速幂) 题面 CF 题解 考虑一个暴力\(dp\).假设有\(m\)个\(0\),\(n-m\)个\(1\).设\(f[i ...
- Python【第五篇】模块、包、常用模块
一.模块(Module) 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
- django系列5:视图
在Django中,网页和其他内容由视图提供.每个视图都由一个简单的Python函数(或基于类的视图的方法)表示.Django将通过检查所请求的URL(确切地说,是域名后面的URL部分)来选择视图. 在 ...
- 关于ehcache缓存中eternal及timeToLiveSeconds和timeToIdleSeconds的说明
今天发现开发项目启动时有警告提示:cache 'xx' is set to eternal but also has TTL/TTI set,发现是ehcache缓存设置冲突 所以决定在此mark一下 ...
- Arduino-接口图
Arduino开发板上数字输入输出引脚中的3.5.6.9和11都提供0V和5V之外的可变输出.在这些引脚的旁边,会标有PWM——脉冲宽度调制,PWM是英文“Pulse Width Modulation ...