matplotlib官方文档pdf_Matplotlib知识
转自: 数据Seminar公众号
介绍
本文不是一篇详尽的、从简到繁的 Maplotlib 画图教程,而是用各种例子快速直观地让读者上手 Matplotlib 画图中的一些常用的、基础的操作。本文不对各种数据图(折线图、柱状图等)作介绍。文中配有效果示意图及代码。本文亦可作常用画图函数/参数查询之用。
什么样的数据图才是好的?
图之好坏不在繁简,一副好图,应该让读者能清晰明了地理解你想要表达的意思。所以在设计图的时候,此为第一要义。
检查你的数据图
是否对色盲友好?
避免过多地使用红绿配色。
如果打印成黑白稿(grayscale)的话,读者是否还能分辨出不同的元素?
避免仅使用颜色来区分元素,使用恰当、对比度高的颜色,以及 Marker、线的样式、粗细等。
图片的质量是否足够高?
PDF、EPS 等矢量图、分辨率高的 PNG、JPG。
标题、标签、刻度、图例是否正确,表达清楚?
最好不要仅使用数学符号来表示轴标签,例如 α、β 等,使用明确的文字来描述。
使用的字体与正文是否一致?
基础知识
在介绍其他内容之前,我们先回顾一下基础知识,这里借用 Matplotlib 文档的一张图[1]:
图中共标出了14种概念:
Figure - 画板
Title - 标题
X axis label - X轴标签
Y axis label - Y轴标签
Legend - 图例
Major tick label - 主刻度标签
Minor tick label - 次刻度标签
Grid - 网格
Line (line plot) - 线
Markers (scatter plot) - 标记
Major tick - 主刻度
Minor tick - 次刻度
Axes - 轴
Spines - 脊
这些基础概念十分有用,希望大家能记住其作用及对应的英文。如果遇到更复杂的需求,可以直接在官网文档(https://matplotlib.org/contents.html)中进行查询。
环境
Python 3.7.3
- Matplotlib 3.1.3
常用链接
颜色 Colors
Choosing Colormaps in Matplotlib:
https://matplotlib.org/tutorials/colors/colormaps.html
- List of Named Colors :
https://matplotlib.org/gallery/color/named_colors.html#sphx-glr-gallery-color-named-colors-py
- HTML Color Picker:
https://www.w3schools.com/colors/colors_picker.asp?color=%23ffab00
- Color Brewer 2.0:
https://colorbrewer2.org/#type=sequential&scheme=BuGn&n=3
- How to find a color scheme that’s also useful when printed in black and white?
https://ux.stackexchange.com/questions/23876/how-to-find-a-color-scheme-thats-also-useful-when-printed-in-black-and-white
线样式
Linestyle - Line2D:
https://matplotlib.org/gallery/lines_bars_and_markers/linestyles.html#sphx-glr-gallery-lines-bars-and-markers-linestyles-py标记样式
Markers - Marker filling:
https://matplotlib.org/gallery/lines_bars_and_markers/marker_fillstyle_reference.html#sphx-glr-gallery-lines-bars-and-markers-marker-fillstyle-reference-py
刻度
Tick Locators - Tick Formatters:
https://matplotlib.org/gallery/ticks_and_spines/tick-locators.html#sphx-glr-gallery-ticks-and-spines-tick-locators-py
图例
Legend Guide:
https://matplotlib.org/3.1.1/tutorials/intermediate/legend_guide.html
正文
开始画图
import matplotlib.pyplot as plt # 之后的代码默认引入此包
左右滑动查看更多
Figure 画板
创建一个简单的画板并展示:
fig, ax = plt.subplots()plt.show() # 之后的代码默认省略此步骤
左右滑动查看更多
设定画板的长宽 figsize :
fig, ax = plt.subplots(figsize=(12, 3))
左右滑动查看更多
设定子图:
fig , ax = plt.subplots(nrows=3, ncols=5)
左右滑动查看更多
nrows 和 ncols 参数分别为行数和列数。更复杂的例子请参考官网教程:
https://matplotlib.org/gallery/subplots_axes_and_figures/gridspec_and_subplots.html#sphx-glr-gallery-subplots-axes-and-figures-gridspec-and-subplots-py
访问不同的字图,假设现在有三行五列:
ax[0, 4].plot(x, y, color='limegreen')ax[2, 2].plot(x, y, color='red')
左右滑动查看更多
紧凑布局 Tight Layout:
fig, ax = plt.subplots(tight_layout=True)
左右滑动查看更多
画板背景色:
ax.set_facecolor('lightblue')
左右滑动查看更多
图中图 Inset:
ax.plot(x, y, color='limegreen', label='Xovee')inset = plt.axes((.5, .5, .3, .3), facecolor='lightblue')inset.plot(x, y, color='red')
左右滑动查看更多
标签 Label
设定图片的轴标签、标题、字体颜色、字体大小:
plt.title()
plt.xlabel()、plt.ylabel()
plt.set_title()
ax.set_xlabel()、ax.set_ylabel()
ax.set_title("Xovee's Figure", fontsize=24, color='red')ax.set_xlabel('Xovee', fontsize=20, color='lightblue')ax.set_ylabel('Xovee', fontsize=20, color='coral')
左右滑动查看更多
轴 Axes/Axis
设定轴的范围:
ax.set_xlim(np.pi, 3*np.pi)ax.set_ylim(-.5, .5)
左右滑动查看更多
设定轴的缩放 Scale,可选项包括:
linear 默认
log
symlog
logit
fig, ax = plt.subplots(ncols=2, figsize=(8, 4), tight_layout=True)x = np.linspace(0, 100, 1000)y = [2**x_ for x_ in x]ax[0].plot(x, y, color='limegreen', label='Xovee')ax[1].plot(x, y, color='coral')ax[1].set_yscale('log')
左右滑动查看更多
设定轴的上下界、粗细、颜色:
ax.plot(x, y, color='limegreen', label='Xovee')ax.set_yticks([-.5, 0., .5])ax.set_xticks([2, 4, 6, 8])ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['left'].set_bounds(-.5, .5)ax.spines['bottom'].set_bounds(2, 8)ax.spines['bottom'].set_linewidth(2)ax.spines['bottom'].set_color('red')
左右滑动查看更多
隐藏轴:
hide_axes = ['left', 'top', 'right', 'bottom']for axis in hide_axes: ax.spines[axis].set_visible(False)
左右滑动查看更多
读者可以关注一下这个ax.spines,即轴的脊椎,将其可见度设为False:
设定右(上)坐标轴:ax.twinx(),同理可以设置上坐标轴ax.twiny()。
ax.plot(x, y, color='limegreen', label='Xovee')axr = ax.twinx()axr.set_yticks([.5])axr.set_yticklabels(['Xovee'])
左右滑动查看更多
Tick 刻度
设置刻度的长、宽、颜色:
# axis 默认是 both, 或者 x 和 y# which 可以是 major, minor, bothax.tick_params(axis='both', which='major', color='blue', length=10, width=3)
左右滑动查看更多
自定义刻度的位置和标签:
plt.xticks()、plt.yticks()
ax.set_xticks() 和 ax.set_xticklabels()
ax.set_yticks() 和 ax.set_yticklabels()
import matplotlib.pyplot as pltimport numpy as npfig, ax = plt.subplots(tight_layout=True)x = np.linspace(0, 4*np.pi, 100)y = np.sin(x)plt.plot(x, y, color='limegreen', label='Xovee')plt.xticks([0, np.pi, 2*np.pi, 3*np.pi, 12], ['0.0', '$\pi$', '$2\pi$', '3$\pi$', '12'], fontsize=16, rotation=30, color='red')plt.yticks([-1, 0, 1], fontsize=16, color='blue')plt.show()
左右滑动查看更多
显示(隐藏)主/次刻度:右轴显示minor次刻度,下轴不显示minor次刻度。
ax.set_xticks([1e1, 1e2, 1e4], minor=True)ax.set_yticks([1e-4, 1e-2, 1e0], minor=False)
左右滑动查看更多
Legend 图例
设定图例位置和文字大小:loc的可选参数包括best, lower, upper, center, left, right及其部分组合例如lower left。
plt.legend(loc='lower center', fontsize=24)
左右滑动查看更多
设定图例位置:bbox_to_anchor参数的四元组,以左下角为参照,设定图例的位置:
plt.legend(loc='lower left', bbox_to_anchor=(0, 1.05, .5, 1.05), fontsize=24)
左右滑动查看更多
多行多列图例、图例背景颜色:
legend = plt.legend(loc='lower left', ncol=3, fontsize=16)legend.get_frame().set_facecolor('linen')
左右滑动查看更多
网格 Grid
fig, ax = plt.subplots(ncols=3, tight_layout=True)x = np.linspace(0, 4*np.pi, 100)y = np.sin(x)ax[0].plot(x, y, color='limegreen', label='Xovee')ax[1].plot(x, y, color='red', label='Xovee')ax[2].plot(x, y, color='blue', label='Xovee')ax[0].grid(axis='x', linestyle='--')ax[1].grid(axis='y', linewidth=5)ax[2].grid(color='purple')
左右滑动查看更多
其他命令
减小生成的文件大小:添加rasterized=True参数。
plt.plot(x, y, rasterized=True)plt.scatter(x, y, rasterized=True)...
左右滑动查看更多
文字 Text:
ax.text(2, 0, 'Xovee Xu is watching you!!!', fontsize=12, weight='bold', color='Coral')
左右滑动查看更多
设定字体:
from matplotlib import rcParamsrcParams['font.family'] = 'Times New Roman'
左右滑动查看更多
设定层级 zorder:zorder高的元素显示在zorder低低元素之上。
ax[0].scatter([0], [2], s=1e5)ax[0].scatter([0], [0], s=1e5, c='red')ax[1].scatter([0], [2], s=1e5, zorder=5)ax[1].scatter([0], [0], s=1e5, c='red', zorder=3)
左右滑动查看更多
透明 alpha:设定alpha参数,1为不透明,0为完全透明。
ax.scatter([0], [2], s=1e5, c='green', alpha=.5)ax.scatter([0], [0], s=1e5, c='yellow', alpha=.5)ax.scatter([-1], [1], s=3e4, c='red', zorder=0)ax.scatter([1], [1], s=3e4, c='blue', alpha=1.)
左右滑动查看更多
设置颜色地图:例一 colormap。各种colormap颜色参考值可以在这里找到。
fig, ax = plt.subplots(tight_layout=True)x = np.linspace(0, 4*np.pi, 100)y = np.sin(x)cmp = plt.cm.get_cmap('rainbow')for i in range(len(x)-1): plt.plot([x[i], x[i+1]], [y[i], y[i+1]], linewidth=5, color=cmp(x[i]/max(x)))
左右滑动查看更多
设置颜色地图:例二 colormap
ax.scatter(x, y, s=x**2, c=y, cmap='rainbow')
左右滑动查看更多
打印出系统中支持的字体名:
import matplotlib.font_managera = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])for i in a: print(i)
左右滑动查看更多
Reference
Usage Guide. (Mar 20, 2020). Retrieved from :
https://matplotlib.org/tutorials/introductory/usage.html#sphx-glr-tutorials-introductory-usage-py
matplotlib官方文档pdf_Matplotlib知识相关推荐
- Matplotlib官方文档学习笔记 PART1-简介 C2-pyplot教程 (19-12-4 by-xieyuxin)
第二章 pyplot教程 2.1 pyplot简介(Intro to pyplot) matplotlib.pyplot 是使 matplotlib 像 MATLAB 一样工作的命令样式函数的集合.每 ...
- 【Matplotlib】matplotlib.animation.FuncAnimation绘制动态图、交互式绘图汇总(附官方文档)
文章目录 零.文中用到的相关知识: 一.以sin举例,motplotlib绘制动图 1.绘制sin函数 2.动态画出sin函数曲线 3.点在曲线上运动 4.点,坐标运动 二.单摆例子 1.scipy中 ...
- 如何快速掌握oracle,教你如何快速从 Oracle 官方文档中获取需要的知识
以下链接可查看 11g 到 20c 的在线官方文档. https://docs.oracle.com/en/database/oracle/oracle-database/index.html 如图, ...
- oracle语法官方文档,Oracle官方文档必备语法知识
很多Oracle DBA虽然接触Oracle时间很长,但是一旦想不起语法或找不出相应参数时,习惯百度或谷歌.虽然已经下载了官方文档,但是 Oracle官方文档必备语法知识 [日期:2015-04-21 ...
- matplotlib 常用图形绘制与官方文档
matplotlib 常用图形绘制与官方文档 matplotlib.org Python库matplotlib 图形绘制 官方教程目录 matplotlib.pyplot matplotlib.pyp ...
- python数据科学和机器学习常用库的官方文档
文章目录 Matplotlib Numpy Pandas sklearn sklearn_crfsuite SciPy Matplotlib 进入matplotlib官网地址:https://matp ...
- scikit-learn (sklearn) 官方文档中文版
scikit-learn (sklearn) 官方文档中文版 sklearn 0.21.3 中文文档 sklearn 0.21.3 中文示例 sklearn 英文官网 介绍 sklearn (scik ...
- 教你如何阅读Oracle数据库官方文档
< Ask Oracle官方原创 > Oracle 官方文档 数量庞大,而且往往没有侧重点,让oracle新手看起来很费力.但是,仍有很多Oracle使用者认为任何oracle学习资料都比 ...
- 每天一小时python官方文档学习(七)————模块与包
6. 模块 模块是一个包含Python定义和语句的文件,实际上就是一个正常的.py文件.但是作用和普通需要运行的程序不一样,它实际上有点像函数.如果说函数实现了代码的重用,模块则是实现了函数的重用.我 ...
- clickhouse官方文档_clickhouse分析:结合grafana和metabase完成监控和数据分析
点击上方蓝字关注我们 " 关于clickhouse的监控和可视化界面,想必刚接触到ch的人是一头雾水,大厂往往会给ch集群定制各种监控和可视化分析,普通用户就需要我们自己寻求现成的开源工具, ...
最新文章
- linux的临时页表映射问题
- 使用maven运行单元測试总结
- shell 练习题01:列出使用最多的命令是哪些并且将这些命令输入到chy1.txt中
- 基于MATLAB的TDOA算法的仿真
- hive把字符串转换为时间_关于hive的时间转换
- python绘图矩阵散点图_Python实践:seaborn的散点图矩阵(Pairs Plots)可视化数据
- jquery 取值 数值_jQuery – 使用正则表达式获取数据值
- [论文阅读] Active Class Incremental Learning for Imbalanced Datasets
- 人声处理_科唛课堂——人声的音频后期处理
- LeetCode 445. Add Two Numbers II
- linux文件名变量,文件名通配符、变量以及管道知识点的总结
- 2015年7月15日 JS第一课(JS,声明变量,数据类型)
- Unity Android 跳转拨号界面和一键加群
- php 银行卡二三四要素验证接口
- Haproxy配置应用文档
- 学习笔记——VMware网络桥接的几个问题(有配置问题的值得一看)
- 家用台式计算机需要安装的软件,新的电脑应该安装哪些应用?推荐这9个软件够你用一生!...
- 输入年份和天数计算出几月几号
- HTML+CSS+Javascript简易记账本(localStorage)
- com.monotype.android.font.ktoppo,Zawgyi Myanmar Fonts Free