Python matplotlib绘图详解

目录
  • 图标英文显示设置:
  • 一、figure窗口及坐标轴设置
  • 二、为特殊点加注解(Annotation)
  • 总结

图标英文显示设置:

正常以字符串形式传进去字串,英文显示格式不是很美观,为了让文字更美观点,在书写时以这种格式写:

r'$string$'

在这里,如果需要特殊数学字符使用 \ 转义,空格也需要转义

比如:r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$'

一、figure窗口及坐标轴设置

plt.figure(figsize = (20, 8), dpi = 80) 窗口,用于展示图片
1、figure图形的意思,这里指我们画的图,

2、通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例;

3、在图像模糊的时候可以传入dpi参数,让图片更加清晰

4、figsize:指定图片的大小

5、linewidth:指定显示的线的宽度

6、linestyle:指定线条显示的风格,如:虚线 linestyle="--"

ax = plt.gca() 获取当前图形的坐标轴
gca == "get current axis" 获取坐标轴

ax.spines['right'].set_color('none') 图形的边框
spines通过在[]设置left\right\bottom\top来对4个边框进行格式设置

set_color是设置颜色

ax.xaxis.set_ticks_position('bottom') 设置用哪个刻度做轴 使用bottom当作x轴
ax.spines['bottom'].set_position(('data', 0)) 设置坐标轴的位置 设置x轴的位置是放在y轴的0刻度处
import numpy as np
from matplotlib import pyplot as plt

x = np.linspace(-3, 3, 50)
y1 = x*2+1
y2 = x**2

#创建一个窗口
plt.figure()
#同一窗口放置多张图片
l1, = plt.plot(x, y1, label='up')
l2, = plt.plot(x, y2, color="red", linewidth=2.0, linestyle="--", label='down')
#设置显示图例
plt.legend(handles=[l1, l2], labels=['aaa', 'bbb'], loc='best')

#设置坐标轴的取值范围
plt.xlim((-1,2))
plt.ylim((-2,3))

#设置坐标轴的提示信息
plt.xlabel("I am x")
plt.ylabel("I am y")

#生成新的坐标点
new_ticks = np.linspace(-1, 2, 5) #将-1~2分为5份
#设置显示出来的坐标单位
plt.xticks(new_ticks)
#人为指定坐标轴显示的内容
#设置刻度上显示的内容,但需要人为指定对应顺序
plt.yticks([-2, -1.8, -1, 1.22, 3,], [r'$really\ bad$', r'$bad$', r'$normal$',
                            r'$good$', r'$really\ good$'])

# gca == "get current axis" 获取坐标轴
ax = plt.gca()
#图形的边框
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

#改变坐标轴的位置
#设置用哪个刻度做轴
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
#横坐标设置为y轴的0
ax.spines['bottom'].set_position(('data', 0)) #outward, axes
ax.spines['left'].set_position(('data', 0))
plt.show()

二、为特殊点加注解(Annotation)

使用text()会将文本放置在轴域的任意位置。 文本的一个常见用例是标注绘图的某些特征,而annotate()方法提供辅助函数,使标注变得容易。 annotate用于在图形上给数据添加文本注解,而且支持带箭头的划线工具,方便我们在合适的位置添加描述信息。在标注中,有两个要考虑的点:由参数xy表示的标注位置和xytext的文本位置。 这两个参数都是(x, y)元组。

参数说明:

Axes.annotate(s, xy, *args, **kwargs)

  • s:注释文本的内容
  • xy:被注释的坐标点,二维元组形如(x,y)
  • xytext:注释文本的坐标点,也是二维元组,默认与xy相同
  • xycoords:被注释点的坐标系属性,允许输入的值如下
属性值 含义
'figure points' 以绘图区左下角为参考,单位是点数
'figure pixels' 以绘图区左下角为参考,单位是像素数
'figure fraction' 以绘图区左下角为参考,单位是百分比
'axes points' 以子绘图区左下角为参考,单位是点数(一个figure可以有多个axex,默认为1个)
'axes pixels' 以子绘图区左下角为参考,单位是像素数
'axes fraction' 以子绘图区左下角为参考,单位是百分比
'data' 以被注释的坐标点xy为参考 (默认值)
'polar' 不使用本地数据坐标系,使用极坐标系
  • textcoords :注释文本的坐标系属性,默认与xycoords属性值相同,也可设为不同的值。除了允许输入xycoords的属性值,还允许输入以下两种:
属性值 含义
'offset points' 相对于被注释点xy的偏移量(单位是点)
'offset pixels' 相对于被注释点xy的偏移量(单位是像素)
  • arrowprops:箭头的样式,dict(字典)型数据,如果该属性非空,则会在注释文本和被注释点之间画一个箭头。如果不设置'arrowstyle' 关键字,则允许包含以下关键字:
关键字 说明
width 箭头的宽度(单位是点)
headwidth 箭头头部的宽度(点)
headlength 箭头头部的长度(点)
shrink 箭头两端收缩的百分比(占总长)
? 任何 matplotlib.patches.FancyArrowPatch中的关键字
import numpy as np
from matplotlib import pyplot as plt

x = np.linspace(-3, 3, 50)
y1 = x*2+1
plt.figure()
plt.plot(x, y1, label='up')

#添加注释
x0 = 1
y0 = 2*x0 + 1
#使用散点方式,只显示一个点, blue
plt.scatter(x0, y0, s=50, color='b')
#k--表示 black的 --
plt.plot([x0, x0], [0, y0], 'k--', lw=2.5)

ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

#设置标注
#method 1
plt.annotate(r'$2x+1=%s$' % str(y0), xy=(x0, y0),
             xycoords='data', xytext=(+30, -30), textcoords='offset points',
             fontsize=16, arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=.2'))
plt.text(-3.7, 3, r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$',
            fontdict={'size':16, 'color': 'r'})

plt.show()

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python matplotlib绘图实现删除重复冗余图例的操作

    问题: 由于自己做项目的时候,需要循环的绘制数据,假设有100个样本,每个样本包含两个坐标点(A, B),我需要对这两个点标上不同的颜色,同时还要画出两点间的连线. 显然这个问题中图例我只需要3个(A点,B点,AB的连线),而不是300个,因为每个样本的A点都是同样的颜色,B点也都是一样的颜色,AB的连线也是. 但是单纯的在画完图之后用plt.legend(), 它会给你画出所有300个图例来,这肯定不是我想要的. 探索过程: 如何解决呢? 当然有一种很强制的方法,就是只在画第一个样本,或最后一

  • python 绘图模块matplotlib的使用简介

    上周对线上某几个磁盘进行了fio硬盘性能测试,测试完成之后的结果需要绘制成图像展示出来.我在官网上查找了一下fio自带的命令fio_generate_plot和fio2gnuplot工具的用法,找到了图像的绘制方法,在某一个单一的场景下,确实可以使用这两个工具来进行硬盘性能图像绘制,但是问题是,如果要对比多个场景下绘制出来的图像的差异,fio自带的绘图工具实现起来就有些困难了,但是确实也能实现.例如下图: 如图所示为磁盘iodepth不变,numjobs在(1,8,16)三种不同的场景下绘制出来

  • Python绘图库Matplotlib的基本用法

    一.前言 Matplotlib是Python的绘图库,不仅具备强大的绘图功能,还能够在很多平台上使用,和Jupyter Notebook有极强的兼容性. 二.线型图 import matplotlib.pyplot as plt import numpy as np # 指定生成随机数的种子,这样每次运行得到的随机数都是相同的 np.random.seed(42) # 生成30个满足平均值为0.方差为1的正态分布的样本 x = np.random.randn(30) # plot本意有"绘制(图

  • Python matplotlib实用绘图技巧汇总

    前言 在日常的业务数据分析 ,可视化是非常重要的步骤.这里总结了matplotlib常用绘图技巧,希望可以帮助大家更加更加高效的.美观的显示图表.作者:北山啦 Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 PyQt 和wxPython. pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple impo

  • Python matplotlib可视化绘图详解

    目录 一.绘制线性图形 二.绘制柱状图形 三.绘制直方图 四.绘制散点图 五.绘制极坐标 六.绘制饼图 总结 一.绘制线性图形 执行如下代码 import matplotlib.pyplot as plt dataX=[1,2,3,4] dataY=[2,4,4,2] plt.plot(dataX,dataY) plt.title("Draw straight line") plt.xlabel("x") plt.ylabel("y") plt.

  • Python绘图之详解matplotlib

    一.matplotlib介绍 matplotlib是python从matlab继承的绘图库,可以满足大部分的日常使用,是目前最流行的底层绘图库. 二.matplotlib的使用 (一)导入模块[中文显示] 显示中文方面mac和windows根据自己电脑系统选一个即可 import matplotlib.pyplot as plt # 显示中文(mac) from matplotlib.font_manager import FontManager fm = FontManager() mat_f

  • Python matplotlib绘图详解

    目录 图标英文显示设置: 一.figure窗口及坐标轴设置 二.为特殊点加注解(Annotation) 总结 图标英文显示设置: 正常以字符串形式传进去字串,英文显示格式不是很美观,为了让文字更美观点,在书写时以这种格式写: r'$string$' 在这里,如果需要特殊数学字符使用 \ 转义,空格也需要转义 比如:r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$' 一.figure窗口及坐标轴设置 plt.figure(figsize

  • Python数据分析之matplotlib绘图详解

    目录 多子图 散点图 水平柱状图 同位置柱状图 多子图 figure是绘制对象(可以理解为一个空白的画布),一个figure对象可以包含多个Axes子图,一个Axes是一个绘图区域,不加设置时,Axes为1,且每次绘图其实都是在figure上的Axes上绘图. 我们是在图形对象上面的Axes区域进行作画 1.add_axes():添加区域 2.Matplotlib定义一个axes类,该类的对象称为axes对象(即轴域对象),它指定一个有数值范围限制的绘图区域.再给定一个画布中,可以包含多个axe

  • Python海龟绘图详解

    目录 一.画笔和屏幕 二.实战与应用 1.写字 2.用于交互式写字 3.自己控制方向 4.拖动小海龟画图 5.规定时间后开始画 hello,大家好,我是Dream.最近有小伙伴私信我,说让我出一篇海龟画图,这其实我也不太能弄得明白,那在这里我和大家一块梳理一下!记得给我点赞收藏哟~ 一.画笔和屏幕 这里单独拿开一个讲的话会很抽象,因为一个是线,另一个是面,面是线的载体,线是面的内容 首先大家先运行这一段代码: import turtle#调用turtle库 turtle.title("绘制第一只

  • python matplotlib 绘图 和 dpi对应关系详解

    我就废话不多说啦! dpi=1 600×400 dpi=2 1200×800 dpi=3 1800×1200 ........ dpi=21 (21×600)×(21×400) ---> 12600×8400 示例代码: ............... ............... plt_temp=y_axis plt_temp.resize(len(y_axis) , 1) plt_arr=np.concatenate((plt_arr,plt_temp ), axis=1) #print

  • Python Matplotlib 实现3D绘图详解

    目录 第一个三维绘图程序 3D散点图 3D等高线图 3D线框图 3D曲面图 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为实用的 3D 绘图程序包,比如 mpl_toolkits.mplot3d,通过调用该程序包一些接口可以绘制 3D散点图.3D曲面图.3D线框图等 mpl_toolkits 是 Matplotlib 的绘图工具包. 第一个三维绘图程序 下面编写第一个三维绘图程序. 首先创建一个三维绘

  •  python用matplotlib可视化绘图详解

    目录 1.Matplotlib 简介 2.Matplotlib图形绘制 1)折线图 2)柱状图 3)条形图 3)饼图 4)散点图 5)直方图 6)箱型图 7)子图 1.Matplotlib 简介 Matplotlib 简介: Matplotlib 是一个python的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,matplotlib 对于图像美化方面比较完善,可以自定义线条的颜色和样式,可以在一张绘图纸上绘制多张小图,也可以在一张图上绘制多条线,可以很方便地将数据可

  • Python matplotlib绘图时指定图像大小及放大图像详解

    matplotlib绘图时是默认的大小,有时候默认的大小会感觉图片里的内容都被压缩了,解决方法如下. 先是原始代码: from matplotlib import pyplot as plt plt.figure(figsize=(1,1)) x = [1,2,3] plt.plot(x, x) plt.show() 关键的代码是plt.figure(figsize=(1,1)),生成的图片如下 修改代码,放大图片: from matplotlib import pyplot as plt pl

  • 【python】matplotlib动态显示详解

    1.matplotlib动态绘图 python在绘图的时候,需要开启 interactive mode.核心代码如下: plt.ion(); #开启interactive mode 成功的关键函数 fig = plt.figure(1); for i in range(100): filepath="E:/Model/weights-improvement-" + str(i + 1) + ".hdf5"; model.load_weights(filepath);

  • Python内置模块turtle绘图详解

    urtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形. turtle绘图的基础知识: 1.画布(canvas) 画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置. 设置画布大小 turtle.screensize(canvwidth=None,canvheight=None,bg=None),参数分别为画布的

  • Python数据可视化详解

    目录 一.Matplotlib模块 1.绘制基本图表 1. 绘制柱形图 2. 绘制条形图 3. 绘制折线图 4. 绘制面积图 5. 绘制散点图 6. 绘制饼图和圆环图 2.图表的绘制和美化技巧 1. 在一张画布中绘制多个图表 2. 添加图表元素 3. 添加并设置网格线 4. 调整坐标轴的刻度范围 3.绘制高级图表 1. 绘制气泡图 2. 绘制组合图 3. 绘制直方图 4. 绘制雷达图 5. 绘制树状图 6. 绘制箱形图 7. 绘制玫瑰图 二.pyecharts模块 1.图表配置项 2.绘制漏斗图

随机推荐