Matplotlib_key_point
Matplotlib官方入门教程:
http://www.labri.fr/perso/nrougier/teaching/matplotlib/
本文参考教程:
http://codingpy.com/article/a-quick-intro-to-matplotlib/
--------------------------------------------------------------------------------------
1、画一个简单的图形
2、在一张图上绘制两个数据集
大多数时候读者可能更想在一张图上绘制多个数据集。用 Matplotlib 也可以轻松实现这一点。
上面的代码同时绘制了表示函数 sin(x) 和 cos(x) 的图形。
这段代码和前面绘制一个数据集的代码几乎完全相同,只有一点例外,这段代码在调用 plt.plot()
的时候多传入了一个数据集,并用逗号与第一个数据集分隔开。
3、自定义图形的外观
当在同一个图形上展示多个数据集时,通过改变线条的外观来区分不同的数据集变得非常必要。
例如 '-o'
代表包含实心点标记的实线,'--'
代表虚线。其他的参数需要读者自己去尝试,这也是学习 Matplotlib 最好的方式。默认为实线绘图。
颜色: 蓝色 - 'b' 绿色 - 'g' 红色 - 'r' 青色 - 'c' 品红 - 'm' 黄色 - 'y' 黑色 - 'k'('b'代表蓝色,所以这里用黑色的最后一个字母) 白色 - 'w'
线: 直线 - '-' 虚线 - '--' 点线 - ':' 点划线 - '-.'
常用点标记 点 - '.' 像素 - ',' 圆 - 'o' 方形 - 's' 三角形 - '^' 更多点标记样式点击这里
4、使用子图
使用子图可以在一个窗口绘制多张图。
使用子图只需要一个额外的步骤,就可以像前面的例子一样绘制数据集。即在调用 plot()
函数之前需要先调用 subplot()
函数。该函数的第一个参数代表子图的总行数,第二个参数代表子图的总列数,第三个参数代表活跃区域。
活跃区域代表当前子图所在绘图区域,绘图区域是按从左至右,从上至下的顺序编号。例如在 4×4 的方格上,活跃区域 6 在方格上的坐标为 (2, 2)。
5、简单的散点图
散点图是一堆离散点的集合。用 Matplotlib 画散点图也同样非常简单。
正如上面代码所示,你只需要调用 scatter()
函数并传入两个分别代表 x 坐标和 y 坐标的数组。
注意,我们通过 plot
命令并将线的样式设置为 'bo'
也可以实现同样的效果。
6、彩色映射散点图
另一种你可能用到的图形是彩色映射散点图。这里我们会根据数据的大小给每个点赋予不同的颜色和大小,并在图中添加一个颜色栏。
上面的代码大量的用到了 np.random.rand(10000)
,原因是我们绘图的数据都是随机产生的。
同前面一样我们用到了 scatter()
函数,但是这次我们传入了另外的两个参数,分别为所绘点的大小和颜色。通过这种方式使得图上点的大小和颜色根据数据的大小产生变化。
然后我们用 colorbar()
函数添加了一个颜色栏。
7、直方图
直方图是另一种常见的图形,也可以通过几行代码创建出来。
# 直方图
x = np.random.randn(10000)
plt.hist(x, 50)
plt.show()
直方图是 Matplotlib 中最简单的图形之一。你只需要给 hist()
函数传入一个包含数据的数组。第二个参数代表数据容器的个数。数据容器代表不同的值的间隔,并用来包含我们的数据。数据容器越多,图形上的数据条就越多。
最终你会得到类似下面的直方图:
8、标题,标签和图例
当需要快速创建图形时,你可能不需要为图形添加标签。但是当构建需要展示的图形时,你就需要添加标题,标签和图例。
# 添加标题,坐标轴标记和图例
x = np.linspace(0, 2 * np.pi, 50)
plt.plot(x, np.sin(x), 'r-x', label='Sin(x)')
plt.plot(x, np.cos(x), 'g-^', label='Cos(x)')
plt.legend() # 展示图例
plt.xlabel('Rads') # 给 x 轴添加标签
plt.ylabel('Amplitude') # 给 y 轴添加标签
plt.title('Sin and Cos Waves') # 添加图形标题
plt.show()
为了给图形添加图例,我们需要在 plot()
函数中添加命名参数 'label'
并赋予该参数相应的标签。然后调用 legend()
函数就会在我们的图形中添加图例。
接下来我们只需要调用函数 title()
,xlabel()
和 ylabel()
就可以为图形添加标题和标签。
你会得到类似于下面这张拥有标题、标签和图例的图形:
以上内容应该足够帮助读者开始使用 Matplotlib 和 Python 实现数据可视化,但是这些内容并不全面。我强烈建议读者亲自尝试使用这个工具,笔者也是通过这种方式掌握了这个工具。画一些图形,改变样式并使用子图功能,然后你就会很快掌握 Matplotlib 的使用方式。
==========================================================
补充:
bar 条形图
pie 饼状图
kde 绘制密度分布曲线
Matplotlib_key_point的更多相关文章
随机推荐
- Sass函数:Opacity函数-opacify()、fade-in()函数
这两个函数是用来对已有颜色的透明度做一个加法运算,会让颜色更加不透明.其接受两个参数,第一个参数是原始颜色,第二个参数是你需要增加的透明度值,其取值范围主要是在 0~1 之间.当透明度值增加到大于 1 ...
- IDEA中写xml配置文件的时候没有代码提示
问题情境:如开发SSM应用的时候,编写xml配置mapper.xml文件没有代码提示,这个问题应该是编写的xml文件中没有找到需要的dtd文件. 在xml文件中的引入约束的标签如下: <!DOC ...
- 计蒜客NOIP模拟D1T2
原题: 蒜头君有一棵有根树,树的每一边都有边权,蒜头君想知道任意两点间最短距离之和为多少.另外,由于各种原因,蒜头君的树的边的边权会发生若干次改变,蒜头君想让你告诉他,每一次改变后,任意两点间最短距离 ...
- Hadoop搭建完全分布式
ubuntu系统下: https://blog.csdn.net/u014636511/article/details/80171002 centos系统下: https://blog.csdn.ne ...
- kali网络源配置
使用vim对sources.list文件进行修改: $ vim /etc/apt/sources.list 随便挑选一个源添加到该文件中 ----------------------------- ...
- spring微服务(顺序由简入难易于理解)
一.为微服务应用增加健康监控 1.在 build.gradle 文件 dependencies 属性中增加 compile('org.springframework.boot:spring-boot- ...
- umeditor word文档图片粘贴-自动上传到服务器
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...
- php获取linux服务器CPU、内存、硬盘使用率的实现代码
define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址 define("DB_SE ...
- JavaScript实现Word、Excel、PPT在线预览
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_27626333/article/d ...
- [CSP-S模拟测试]:字符消除2(hash+KMP)
题目背景 生牛哥终于打通了“字符消除”,可是他又被它的续集难倒了. 题目传送门(内部题52) 输入格式 第一行$n$表示数据组书.接下来每行一个字符串.(只包含大写字母) 输出格式 每组数据输出一个$ ...