Python + matplotlib(plt) 绘图要点明细整理

基础画图

坐标设置

确定坐标范围 xlim(xmin, xmax)ylim(ymin, ymax) 来调整 x , y 坐标范围

import numpy as np
import matplotlib.pyplot as plt
from pylab import *

x = np.arange(-5.0, 5.0, 0.02)
y1 = np.sin(x)

plt.figure(1)
plt.subplot(211)
plt.plot(x, y1)

plt.subplot(212)

xlim(-2.5, 2.5)

ylim(-1, 1)
plt.plot(x, y1)

设置坐标轴刻度

plt.xticks()plt.yticks() 可以设置坐标轴的刻度显示的值

xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
       [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

yticks([-1, 0, +1],
       [r'$-1$', r'$0$', r'$+1$'])

线点的参数设置

设置图中线与点的形状和颜色(linestyle、marker)

linestyle 有如下几个可选参数:

'-'             solid line style
'--'            dashed line style
'-.'            dash-dot line style
':'             dotted line style

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

marker 示意图:

Python + matplotlib(plt) 绘图要点明细整理
cnames = {
'aliceblue':            '#F0F8FF',
'antiquewhite':         '#FAEBD7',
'aqua':                 '#00FFFF',
'aquamarine':           '#7FFFD4',
'azure':                '#F0FFFF',
'beige':                '#F5F5DC',
'bisque':               '#FFE4C4',
'black':                '#000000',
'blanchedalmond':       '#FFEBCD',
'blue':                 '#0000FF',
'blueviolet':           '#8A2BE2',
'brown':                '#A52A2A',
'burlywood':            '#DEB887',
'cadetblue':            '#5F9EA0',
'chartreuse':           '#7FFF00',
'chocolate':            '#D2691E',
'coral':                '#FF7F50',
'cornflowerblue':       '#6495ED',
'cornsilk':             '#FFF8DC',
'crimson':              '#DC143C',
'cyan':                 '#00FFFF',
'darkblue':             '#00008B',
'darkcyan':             '#008B8B',
'darkgoldenrod':        '#B8860B',
'darkgray':             '#A9A9A9',
'darkgreen':            '#006400',
'darkkhaki':            '#BDB76B',
'darkmagenta':          '#8B008B',
'darkolivegreen':       '#556B2F',
'darkorange':           '#FF8C00',
'darkorchid':           '#9932CC',
'darkred':              '#8B0000',
'darksalmon':           '#E9967A',
'darkseagreen':         '#8FBC8F',
'darkslateblue':        '#483D8B',
'darkslategray':        '#2F4F4F',
'darkturquoise':        '#00CED1',
'darkviolet':           '#9400D3',
'deeppink':             '#FF1493',
'deepskyblue':          '#00BFFF',
'dimgray':              '#696969',
'dodgerblue':           '#1E90FF',
'firebrick':            '#B22222',
'floralwhite':          '#FFFAF0',
'forestgreen':          '#228B22',
'fuchsia':              '#FF00FF',
'gainsboro':            '#DCDCDC',
'ghostwhite':           '#F8F8FF',
'gold':                 '#FFD700',
'goldenrod':            '#DAA520',
'gray':                 '#808080',
'green':                '#008000',
'greenyellow':          '#ADFF2F',
'honeydew':             '#F0FFF0',
'hotpink':              '#FF69B4',
'indianred':            '#CD5C5C',
'indigo':               '#4B0082',
'ivory':                '#FFFFF0',
'khaki':                '#F0E68C',
'lavender':             '#E6E6FA',
'lavenderblush':        '#FFF0F5',
'lawngreen':            '#7CFC00',
'lemonchiffon':         '#FFFACD',
'lightblue':            '#ADD8E6',
'lightcoral':           '#F08080',
'lightcyan':            '#E0FFFF',
'lightgoldenrodyellow': '#FAFAD2',
'lightgreen':           '#90EE90',
'lightgray':            '#D3D3D3',
'lightpink':            '#FFB6C1',
'lightsalmon':          '#FFA07A',
'lightseagreen':        '#20B2AA',
'lightskyblue':         '#87CEFA',
'lightslategray':       '#778899',
'lightsteelblue':       '#B0C4DE',
'lightyellow':          '#FFFFE0',
'lime':                 '#00FF00',
'limegreen':            '#32CD32',
'linen':                '#FAF0E6',
'magenta':              '#FF00FF',
'maroon':               '#800000',
'mediumaquamarine':     '#66CDAA',
'mediumblue':           '#0000CD',
'mediumorchid':         '#BA55D3',
'mediumpurple':         '#9370DB',
'mediumseagreen':       '#3CB371',
'mediumslateblue':      '#7B68EE',
'mediumspringgreen':    '#00FA9A',
'mediumturquoise':      '#48D1CC',
'mediumvioletred':      '#C71585',
'midnightblue':         '#191970',
'mintcream':            '#F5FFFA',
'mistyrose':            '#FFE4E1',
'moccasin':             '#FFE4B5',
'navajowhite':          '#FFDEAD',
'navy':                 '#000080',
'oldlace':              '#FDF5E6',
'olive':                '#808000',
'olivedrab':            '#6B8E23',
'orange':               '#FFA500',
'orangered':            '#FF4500',
'orchid':               '#DA70D6',
'palegoldenrod':        '#EEE8AA',
'palegreen':            '#98FB98',
'paleturquoise':        '#AFEEEE',
'palevioletred':        '#DB7093',
'papayawhip':           '#FFEFD5',
'peachpuff':            '#FFDAB9',
'peru':                 '#CD853F',
'pink':                 '#FFC0CB',
'plum':                 '#DDA0DD',
'powderblue':           '#B0E0E6',
'purple':               '#800080',
'red':                  '#FF0000',
'rosybrown':            '#BC8F8F',
'royalblue':            '#4169E1',
'saddlebrown':          '#8B4513',
'salmon':               '#FA8072',
'sandybrown':           '#FAA460',
'seagreen':             '#2E8B57',
'seashell':             '#FFF5EE',
'sienna':               '#A0522D',
'silver':               '#C0C0C0',
'skyblue':              '#87CEEB',
'slateblue':            '#6A5ACD',
'slategray':            '#708090',
'snow':                 '#FFFAFA',
'springgreen':          '#00FF7F',
'steelblue':            '#4682B4',
'tan':                  '#D2B48C',
'teal':                 '#008080',
'thistle':              '#D8BFD8',
'tomato':               '#FF6347',
'turquoise':            '#40E0D0',
'violet':               '#EE82EE',
'wheat':                '#F5DEB3',
'white':                '#FFFFFF',
'whitesmoke':           '#F5F5F5',
'yellow':               '#FFFF00',
'yellowgreen':          '#9ACD32'}

颜色示意图:

Python + matplotlib(plt) 绘图要点明细整理

文字设置

添加文字说明

plt.text() 可以在图中的任意位置添加文字,并支持 LaTex 语法
xlable()ylable 用于添加 x 轴和 y 轴标签
title() 用于添加图的题目


plt.text(60, .025, r'$\mu=100,\ \sigma=15$')

plt.annotate() 可以添加注释

import numpy as np
import matplotlib.pyplot as plt

ax = plt.subplot(111)

t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = plt.plot(t, s, lw=2)

plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
            arrowprops=dict(facecolor='black', shrink=0.05),
            )

plt.ylim(-2,2)
plt.show()

Python + matplotlib(plt) 绘图要点明细整理

图表正常显示中文

为了在图表中正常显示中文和负号等,需要如下设置代码:

import matplotlib.pyplot as plt
plt.rcParams['font.sas-serig']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

图表设置

添加图例

plt.legend() 添加图例

plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="cosine")
plot(X, S, color="red",  linewidth=2.5, linestyle="-", label="sine")
legend(loc='upper left')

Python + matplotlib(plt) 绘图要点明细整理

设置图例的位置

图例的位置通过 plt.legend(bbox_to_anchor=(num1, num2), loc=num3, borderaxespad=num4) 设置

bbox_to_anchor(num1,num2) 表示 legend 的位置和图像的位置关系, num1 表示水平位置, num2 表示垂直位置。
num1=0 表示 legend 位于图像的左侧垂直线(图像内,与 y 轴重合); num1=1 表示 legend 位于图像的右侧垂直线(图像外面,与右侧垂线重合);当 num1 大于 1 时, legend 位于图像的右侧垂直线(图像外面,不与右侧垂线重合),一般取 num1=1.05
num2=1 表示 legend 位于图像上侧水平线; num2=0 表示 legend 位于图像下侧水平线。

其中, loc 参数如下,可以单独使用 plt.legend(bbox_to_anchor=(loc='upper right'),也可以和其他参数一起使用 plt.legend(bbox_to_anchor=(num1, num2), loc=num3, borderaxespad=num4)

位置StringNumber右上upper right1左上upper left2左下lower left3右下lower right4正右right5中央偏左center left6中央偏右center right7中央偏下lower center8中央偏上upper center9正中央center10

参数 num4 表示轴和 legend 之间的填充,以字体大小距离测量,默认值为 None,但实际操作中,如果不加该参数,效果是有一定的填充。

特殊点做注释

t = 2*np.pi/3

plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
scatter([t,],[np.cos(t),], 50, color ='blue')

annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
         xy=(t, np.sin(t)), xycoords='data',
         xytext=(+10, +30), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")
scatter([t,],[np.sin(t),], 50, color ='red')

annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
         xy=(t, np.cos(t)), xycoords='data',
         xytext=(-90, -50), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

Python + matplotlib(plt) 绘图要点明细整理

plt.subplot()

plt.subplot(231) 表示把图分割为 2*3 的网格,也可以是 plt.subplot(231)
其中,第一个参数表示行数,第二个参数表示列数,第三个参数表示图形的标号

图表背景色

通过向 plt.pyplot.axes() 或者 plt.pyplot.subplot() 提供一个 axisbg 参数,可以指定坐标轴的背景色

subplot(111, axisbg=(0.1843, 0.3098, 0.3098))

饼图——pie

一个例子:

import matplotlib.pyplot as plt
labels = 'frogs', 'hogs', 'dogs', 'logs'
sizes = 15, 20, 45, 10
colors = 'yellowgreen', 'gold', 'lightskyblue', 'lightcoral'
explode = 0, 0.1, 0, 0
plt.pie(sizes, explode = explode, labels = labels, colors = colors, autopct = '%1.2f%%', shadow = True, startangle = 50)

plt.axis('equal')
plt.show()

图片1

图片2

pie 的参数说明:

参数说明x(每一块)的比例,如果sum(x) > 1会使用sum(x)归一化labels(每一块)饼图外侧显示的说明文字explode(每一块)离开中心距离startangle起始绘制角度;
默认图是从x轴正方向逆时针画起

;如设定=90则从y轴正方向画起shadow在饼图下面画一个阴影;
默认值:False,即不画阴影

labeldistancelabel标记的绘制位置,相对于半径的比例;
默认值为1.1,如

Original: https://blog.csdn.net/un357951/article/details/122667027
Author: timedecdec
Title: Python + matplotlib(plt) 绘图要点明细整理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/764860/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 给某个伙伴展示一次渗透提权

    某个正在学习安全伙伴告诉我,他老师给他一个靶机让他提权,他不知道怎么下手,让我来试一下,那就试一下 知道网段ip没开机密码,他说这个靶机是这样的。 固定ip是 192.168.3….

    Python 2023年10月20日
    043
  • 《笨办法学Python3 》入坑必备,并不是真笨学!!!

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    Python 2023年5月23日
    086
  • matplotlib.widgets简单上手

    matplotlib官方文档网站:https://matplotlib.org/我的思想是在案例中学习而不是挨着一个一个看,在案例中学习能很快掌握,并且能不断保持学习的热情,下面开…

    Python 2023年8月31日
    045
  • 手写数字的识别问题-SVM、朴素贝叶斯算法、决策树算法、KNN算法对比

    目录 一、 题目内容和要求: 二、问题背景和相关工作介绍 * 概念介绍 数据介绍 算法介绍 三、解题思路 * 1.SVM算法流程 2.朴素贝叶斯算法流程 3.决策树算法流程 4.K…

    Python 2023年10月9日
    043
  • Pytest入门

    单元测试框架 java:junit和testingpython:unittest和pytest 单元框架主要做了什么 Pytest单元测试框架和自动化测试框架的关系 单元测试框架:…

    Python 2023年9月14日
    066
  • Spring入门二:整合mybatis

    一、SM思路分析 spring(略)、mybatis、mysql、mybatis-spring(减少自己实现FactoryBean接口)、druid html;collapse:t…

    Python 2023年6月10日
    071
  • Linux netstat:查看网络状态

    netstat 主要用于网络监控,在进程管理方面也很重要。它的输出分为两大部分,分别是网络和系统自己的进程相关性部分。 netstat [-atunlp] -a 列出目前系统上所有…

    Python 2023年6月16日
    076
  • 『Python』pytest 单元测试迅速上手 (for Pycharm)

    背景介绍进行项目交付之前,甲方通常需要开发者保证项目代码的测试覆盖率达到某个值,为此我们需要为项目中的代码编写相应的单元测试,然后把代码提交到 C I CI C I 工具,运行 p…

    Python 2023年9月12日
    062
  • ChatGPT 大白话 SmartIDE

    最近 OpenAI 下的 ChatGPT 刷爆了朋友圈,需要注册用户才能使用(因为暂时不对中国区开放,所以注册会有点费劲),注册成功后,我马上问了”他”几个…

    Python 2023年10月24日
    036
  • 机器学习中的数学(一):向量、求和符号、累乘符号

    目录 一、向量 * 1.1 什么是向量? 1.2 向量的简单定义及使用 1.3 向量的加法和减法 1.4 标量积 1.5 内积 1.6 向量的模 二、求和符号 三、累乘符号 一、向…

    Python 2023年8月29日
    038
  • pygame 实现打字单词的统计_Java实现单词统计

    单词统计的是统计一个文件中单词出现的次数,比如下面的数据源 其中,最终出现的次数结果应该是下面的显示 那么在MapReduce中该如何编写代码并出现最终结果? 首先我们把文件上传到…

    Python 2023年9月25日
    041
  • JavaSE(类和对象、this用法、构造方法)

    面向对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成…

    Python 2023年9月15日
    042
  • django入门教程

    django入门教程 django的安装与运行 url路由设置 创建数据库和表 对资源的增、删、改、 查 登录退出的实现 分页和过滤 部署 django的安装与运行 安装djang…

    Python 2023年8月4日
    060
  • __new__()方法使用

    class C2F(float): def __new__(cls,degrees_c): degrees_f = degrees_c*1.8 +32#需要转化的公式 return…

    Python 2023年6月15日
    067
  • windows 修改(pip/conda)镜像源

    前言 本文仅介绍了 Windows 环境下的 pip 和 conda 的镜像源修改方法, linux系统请移步主页另一篇博文。 1、什么是镜像源? 国内的下载资源,国外源pip i…

    Python 2023年9月7日
    070
  • Andrej Karpathy | 详解神经网络和反向传播(基于 micrograd)

    只要你懂 Python,大概记得高中学过的求导知识,看完这个视频你还不理解反向传播和神经网络核心要点的话,那我就吃鞋:D Andrej Karpathy,前特斯拉 AI 高级总监、…

    Python 2023年10月25日
    041
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球