1. 绘制图表组成元素的主要函数

1.1 plot()——展现量的变化趋势

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.cos(x) plt.plot(x, y, ls="-", lw=2, label="plot figure")
plt.legend()
plt.show()

1.2 scatter()——寻找变量之间的关系

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.random.rand(1000) plt.scatter(x, y, label="scatter figure")
plt.legend()
plt.show()

1.3 xlim()——设置x轴的数值显示范围

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.random.rand(1000) plt.scatter(x, y, label="scatter figure")
plt.legend()
plt.xlim(0.05, 10)
plt.ylim(0, 1)
plt.show()

1.4 xlabel()——设置x轴的标签文本

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.sin(x) plt.plot(x, y, ls="--", lw=2, c="c", label="plot figure")
plt.legend()
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.show()

1.5 grid()——绘制刻度线的网格线

import numpy as np
import matplotlib.pyplot as plt
import matplotlib matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.sin(x) plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
plt.legend()
plt.grid(linestyle=":", color="r")
plt.show()

grid()函数的主要参数为grid(b, which, axis, color, linestyle, linewidth, **kwargs)

  • b:布尔值。就是是否显示网格线的意思。官网说如果b设置为None, 且kwargs长度为0,则切换网格状态
  • which:取值为major, minorboth。 默认为major
  • axis:取值为bothxy。就是想绘制哪个方向的网格线
  • color:这就不用多说了,就是设置网格线的颜色。或者直接用c来代替color也可以
  • linestyle:也可以用ls来代替linestyle, 设置网格线的风格,是连续实线,虚线或者其它不同的线条

1.6 axhline()——绘制平行于x轴的水平参考线

import numpy as np
import matplotlib.pyplot as plt
import matplotlib matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.sin(x) plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
plt.legend()
plt.axhline(y=0.0, c="r", ls="--", lw=2)
plt.axvline(x=4.0, c="r", ls="--", lw=2)
plt.show()

1.7 axvspan()——绘制垂直于x轴的参考区域

import numpy as np
import matplotlib.pyplot as plt
import matplotlib matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.sin(x) plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
plt.legend()
plt.axvspan(xmin=4.0, xmax=6.0, facecolor="y", alpha=0.3)
plt.axhspan(ymin=0.0, ymax=0.5, facecolor="y", alpha=0.3)
plt.show()

1.8 annotate()——添加图形内容细节的指向型注释文本

import numpy as np
import matplotlib.pyplot as plt
import matplotlib matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.sin(x) plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
plt.legend()
plt.annotate(s="maximum",
xy=(np.pi / 2, 1.0),
xytext=((np.pi / 2) + 1.0, 0.8),
weight="bold",
color="b",
arrowprops=dict(arrowstyle="->", connectionstyle="arc3", color="b")
)
plt.show()

xy:被注释图形内容的位置坐标

xytext:注释文本的位置坐标

weight:注释文本的字体粗细风格

color:注释文本的字体颜色

arrowprops:指示被注释内容的箭头的属性字典

1.9 text()——添加图形内容细节的无指向型注释文本

import numpy as np
import matplotlib.pyplot as plt
import matplotlib matplotlib.use('Qt5Agg') x = np.linspace(0.05, 10, 1000)
y = np.sin(x) plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
plt.legend()
plt.text(x=3.10, y=0.09, s="y=sin(x)", weight="bold", color="b")
plt.show()

1.10 title()——添加图形内容的标题

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt x = np.linspace(-2, 2, 1000)
y = np.exp(x) plt.plot(x, y, ls="-", lw=2, color="g") plt.title("center demo") plt.title("left demo", loc="left",
fontdict={"size": "xx-large",
"color": "r",
"family": "Times New Roman"}) plt.title("right demo", loc="right",
family="Comic Sans MS", size=20,
style="oblique", color="c") plt.show()

主要参数都在上面代码里体现了

1.11 legend()——表示不同图形的文本标签图例

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt x = np.arange(0, 2.1, 0.1)
y = np.power(x, 3)
y1 = np.power(x, 2)
y2 = np.power(x, 1) plt.plot(x, y, ls="-", lw=2, label="$x^3$")
plt.plot(x, y1, ls="-", lw=2, label="$x^2$")
plt.plot(x, y2, ls="-", lw=2, label="$x^1$") plt.legend(loc="upper left",fontsize="x-large", bbox_to_anchor=(0.05, 0.95), ncol=3,
title="power function", shadow=True, fancybox=True) plt.show()
  • loc参数控制图例的位置,可选值为

    • best
    • upper right
    • upper left
    • lower left
    • lower right
    • right
    • center left
    • center right
    • lower center
    • upper center
    • center
  • fontsize控制图例字体大小,可选值为

    • int
    • float
    • xx-small
    • x-small
    • small
    • medium
    • large
    • x-large
    • xx-large
  • frameonTrueFalse,是否显示图例边框
  • edgecolor:图例边框颜色
  • facecolor:图例背景颜色,若无边框,参数无效
  • title:设置图例标题
  • fancyboxTrue表示线框直角,False表示线框圆角
  • shadowTrueFalse,是否显示阴影

2. 常用配置参数

2.1 线型

linestylels

  • -:实线
  • --:虚线
  • -.:点划线
  • ::点线

2.2 线宽

linewidthlw

  • 浮点数

2.3 线条颜色

colorc

  • b:blue,蓝色
  • g:green,绿色
  • r:red,红色
  • c:cyan,蓝绿
  • m:magenta,洋红
  • y:yellow,黄色
  • k:black,黑色
  • w:white,白色

也可以对关键字参数color赋十六进制的RGB字符串如 color='#900302'

2.4 点标记类型

marker,只能用以下简写符号表示

  • .:point marker
  • ,:pixel marker
  • o:circle marker
  • v:triangle_down marker
  • ^:triangle_up marker
  • <:triangle_left marker
  • >:triangle_right marker
  • 1:tri_down marker
  • 2:tri_up marker
  • 3:tri_left marker
  • 4:tri_right marker
  • s:square marker
  • p:pentagon marker
  • *:star marker
  • h:hexagon1 marker
  • H:hexagon2 marker
  • +:plus marker
  • x:x marker
  • D:diamond marker
  • d:thin_diamond marker
  • |:vline marker
  • _:hline marker

特别地,标记还有mathtext模式

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.use('Qt5Agg')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串 x = np.arange(1, 13, 1)
y = np.array([12, 34, 22, 30, 18, 13, 15, 19, 24, 28, 23, 27]) fig, ax = plt.subplots(2, 2) ax[0, 0].scatter(x, y * 1.5, marker=r"$\clubsuit$", c="#fb8072", s=500)
ax[0, 0].locator_params(axis="x", tight=True, nbins=11)
ax[0, 0].set_xlim(0, 13)
ax[0, 0].set_xticks(x)
ax[0, 0].set_title('显示样式{}的散点图'.format(r"$\clubsuit$")) ax[0, 1].scatter(x, y - 2, marker=r"$\heartsuit$", c="#fb8072", s=500)
ax[0, 1].locator_params(axis="x", tight=True, nbins=11)
ax[0, 1].set_xlim(0, 13)
ax[0, 1].set_xticks(x)
ax[0, 1].set_title('显示样式{}的散点图'.format(r"$\heartsuit$")) ax[1, 0].scatter(x, y + 7, marker=r"$\diamondsuit$", c="#fb8072", s=500)
ax[1, 0].locator_params(axis="x", tight=True, nbins=11)
ax[1, 0].set_xlim(0, 13)
ax[1, 0].set_xticks(x)
ax[1, 0].set_title('显示样式{}的散点图'.format(r"$\diamondsuit$")) ax[1, 1].scatter(x, y - 9, marker=r"$\spadesuit$", c="#fb8072", s=500)
ax[1, 1].locator_params(axis="x", tight=True, nbins=11)
ax[1, 1].set_xlim(0, 13)
ax[1, 1].set_xticks(x)
ax[1, 1].set_title('显示样式{}的散点图'.format(r"$\spadesuit")) plt.suptitle("不同原始字符串作为标记类型的展示效果", fontsize=16, weight="black") plt.show()

官网有一张属性表,先贴在这,以后有空会再补充内容的

『Python』matplotlib常用函数的更多相关文章

  1. 『Python』matplotlib常用图表

    这里简要介绍几种统计图形的绘制方法,其他更多图形可以去matplotlib找examples魔改 1. 柱状图 柱状图主要是应用在定性数据的可视化场景中,或是离散数据类型的分布展示.例如,一个本科班级 ...

  2. 『Python』matplotlib划分画布的主要函数

    1. subplot() 绘制网格区域中几何形状相同的子区布局 函数签名有两种: subplot(numRows, numCols, plotNum) subplot(CRN) 都是整数,意思是将画布 ...

  3. 『Python』pycharm常用设置

    学习一下pycharm的快捷操作,提升速度,也提升舒适度,笑. 常用快捷键 ctrl + d :复制粘贴本行到下一行 ctrl + y :删除本行 ctrl + 鼠标点击 :跳转 ctrl + / : ...

  4. 『Python』为什么调用函数会令引用计数+2

    一.问题描述 Python中的垃圾回收是以引用计数为主,分代收集为辅,引用计数的缺陷是循环引用的问题.在Python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存. sys.g ...

  5. 『Python』matplotlib的imshow用法

    热力图是一种数据的图形化表示,具体而言,就是将二维数组中的元素用颜色表示.热力图之所以非常有用,是因为它能够从整体视角上展示数据,更确切的说是数值型数据. 使用imshow()函数可以非常容易地制作热 ...

  6. 『Python』matplotlib实现动画效果

    一般而言,在绘制复杂动画时,主要借助模块animation来完成 import numpy as np import matplotlib.pyplot as plt import matplotli ...

  7. 『Python』matplotlib坐标轴应用

    1. 设置坐标轴的位置和展示形式 import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl mpl.use ...

  8. 『Python』matplotlib共享绘图区域坐标轴

    1. 共享单一绘图区域的坐标轴 有时候,我们想将多张图形放在同一个绘图区域,不想在每个绘图区域只绘制一幅图形.这时候,就可以借助共享坐标轴的方法实现在一个绘图区域绘制多幅图形的目的. import n ...

  9. 『Python』matplotlib实现GUI效果

    1. 类RadioButtons的使用方法 类似单选框 import numpy as np import matplotlib.pyplot as plt import matplotlib as ...

随机推荐

  1. sudo apt install net-tools [sudo] zyw 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树,正在读取状态信息... 完成,没有可用的软件包 net-tools,但是它被其它的软件包引用了。这可能意味着这个缺失的软件包可能已被废弃,或者只能在其他发布源中找到

    截图: 先执行: sudo apt-get update 再执行: sudo apt install net-tools 即可安装成功!!

  2. Windows下NodeJS安装与npm环境变量配置

    node.js下载:https://nodejs.org/en/download/ 参考:https://www.jianshu.com/p/812de13f1276 1.安装过程基本直接" ...

  3. Mybatis出现错误org.apache.ibatis.executor.ExecutorException: No constructor found in

    错误显示没有发现构造器. 其实就是重写了构造器后,忘了补写一个默认的空参构造器了.此类的错误还经常出现在spring等这种大量使用反射的框架中.因为这些框架在调用反射的类后会默认调用默认的构造器 解决 ...

  4. 快速排序的Partition函数

    1 //数组中两个数的交换 2 static void swap(int[] nums, int pos1, int pos2){ 3 int temp = nums[pos1]; 4 nums[po ...

  5. Hibernate之关联关系

    时间:2017-1-20 16:28 --一对多配置1.第一步:创建实体类    *   客户实体    *   订单实体    示例代码:        /**          * 客户实体    ...

  6. Storm重启topology,失败

    storm新加节点,重启topology后,出现错误 如果检查了CPU和内存不高后,还出现 java.lang.OutOfMemoryError: unable to create new nativ ...

  7. Promise.race()

    Promise.race([ ])---race竞赛,只要有一个决议了,就返回一个promise实例(对应resolve()或reject( )中参数值: 1.与Promise.all()对应的,还有 ...

  8. 面试官问我MySQL索引,我

    面试官:我看你简历上写了MySQL,对MySQL InnoDB引擎的索引了解吗? 候选者:嗯啊,使用索引可以加快查询速度,其实上就是将无序的数据变成有序(有序就能加快检索速度) 候选者:在InnoDB ...

  9. 学习 Webpack5 之路(优化篇)

    一.前言 从 0 到 1 学习的朋友可参考前置学习文章: 学习 Webpack5 之路(基础篇) 学习 Webpack5 之路(实践篇) 前置文章 学习 Webpack5 之路(基础篇) 对 webp ...

  10. CentOS 7.3安装Zabbix3.2

    一.ZABBIX概述 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件.可以监视各种系统与设备的参数,保障服务器及设备的安全运营.   Zabbix的功能和特性: 1.安装与配置简单: ...