matplotlib画折线图

2023-11-17

matplotlib画折线图

  • 假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]

    代码如下:

    # 导入pyplot
    from matplotlib import pyplot as plt 
    
    # 数据在X轴的位置,是一个可迭代的对象
    x = range(2, 26, 2)
    # 数据在Y轴的位置,是一个可迭代的对象
    # X轴与Y轴的数据个数必须一样,否则会报错
    # X轴和Y轴的数据一起组成了所有要绘制出的坐标
    # 分别是(2,15),(4,13)...
    y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
    # 传入x,y,通过pyplot绘制出折线图
    plt.plot(x, y)
    # 展示图形
    plt.show()
    

结果如下图所示:image.png

  • 从图中可以看出,还存在一下几个问题:

    1. 设置图片大小(想要一个高清大图)

      • 使用figure中的参数figsize调整大小
      from matplotlib import pyplot as plt
      
      # figure图形图标的意思,在这里就是指我们画的图
      # 通过实例化一个figure并且传递参数
      # 在图像模糊的时候可以传入dpi参数,让图片更加清晰
      fig = plt.figure(figsize=(20, 8), dpi=80)
      
      x = range(2, 26, 2)
      y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
      plt.plot(x, y)
      plt.show()
      
      

      image.png

    2. 保存到本地

      • 使用savefig,plt.savefig(“保存路径文件名”)
      from matplotlib import pyplot as plt
      fig = plt.figure(figsize=(20, 8), dpi=80)
      x = range(2, 26, 2)
      y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
      plt.plot(x, y)
      # 保存图片
      plt.savefig("./t1.png")
      
    3. 描述信息,比如x轴和y轴分别表示什么,这个图表示什么

      • x轴的描述信息使用:plt.xlabel()
      • y轴的描述信息使用:plt.ylabel()
      • 图的描述信息使用:plt.title()
    4. 设置x或者y轴上数字和字符串对应

      • x轴使用:plt.xticks(“数字”,“字符串”)
      • y轴使用:plt.yticks(“数字”,“字符串”)
    5. 显示中文(matplotlib不支持中文显示)

      • 从matplotlib中导入font_manager的包
      • 查看系统中支持的中文字体
      • my_font=font_manager.fontProperties(fname=“字体路径”)
      • 在需要使用中文显示的地方加入:fontproperties=my_font
    6. 线条的样式(比如颜色,透明度等)

      • 在绘制的时候指定即可,即在plt.plot()中
      • 线条风格:linestyle=’–’
        字符 线条风格
        - 实线
        虚线
        -. 点划线
        : 点虚线
      • 线条粗细:linewidth=5
      • 透明度:alpha=0.5
      • 设置线条颜色:color=‘r’,也可以使用16进制表示颜色,也可以使用英文。
        字符 颜色
        r 红色
        g 绿色
        b 蓝色
        w 白色
    7. 在一张图中绘制多个折线

      • 需要多少个线,就plot多少次
    8. 设置图例

      • 绘制多个折线之后,无法看出哪条折线代表什么意思,因此需要使用图例
      • 首先在plt.plot()中添加label,区别不同的折线
      • plt.legend(prop=my_font,loc="'best")
      • 通过prop指定图例的字体
      • 通过loc指定图例的位置,默认右上角
    9. 显示网格

      • plt.grid()
  • 例题:如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况?
    y = [random.randint(20,35) for i in range(120)]

    from matplotlib import pyplot as plt
    import random
    from matplotlib import font_manager
    # 设置中文显示,fname表示字体的路径。
    # 在需要显示中文的地方加上fontproperties = my_font
    my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
    
    y = [random.randint(20,35) for i in range(120)]
    x = range(0, 120)
    
    fig = plt.figure(figsize=(20,8),dpi=80)
    _x = list(x)
    # _xtick_labels = ["hello,{}".format(i) for i in _x]
    _xtick_labels = ["10点{}分".format(i) for i in range(60) ]
    _xtick_labels += ["11点{}分".format(i) for i in range(60)]
    # 让列表x中的数据和_xtick_labels上的数据都传入,最终会在x轴上一一对应显示
    # 两组数据的长度必须一样,否则不能完全覆盖整个轴
    # [::5]使用列表切片,每隔5个选一个数据进行展示
    # rotation=45表示旋转45°,这样字符串之间不会覆盖
    plt.xticks(_x[::5], _xtick_labels[::5],rotation = 45, fontproperties = my_font)
    
    plt.xlabel("时间", fontproperties = my_font)
    plt.ylabel("温度(ºC)",fontproperties = my_font)
    plt.title("10点到12点每分钟温度的变化情况", fontproperties = my_font)
    plt.plot(x,y)
    plt.show()
    

结果展示:
10点到12点气温折线图

  • 例题:假设大家在30岁的时候,根据自己的实际情况,统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势
    y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
    要求:
    y轴表示个数
    x轴表示岁数,比如11岁,12岁等
from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")

x = range(11, 31)
y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

fig = plt.figure(figsize=(20,8), dpi=80)

_x = x
_xtick_labels = ["{}岁".format(i) for i in _x]
plt.xticks(x, _xtick_labels, fontproperties = my_font)

plt.title("11岁到30之间每年交的女朋友数量",fontproperties = my_font)

# 绘制网格
plt.grid(alpha = 0.1)

plt.plot(x, y)
plt.show()

结果展示:image.png

  • 例题:假设大家在30岁的时候,根据自己的实际情况,统计出来了你和你同桌各自从11岁到30岁每年交的女(男)朋友的数量如列表a和b,请在一个图中绘制出该数据的折线图,以便比较自己和同桌20年间的差异,同时分析每年交女(男)朋友的数量走势
    y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
    y_2 = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]
    要求:
    y轴表示个数
    x轴表示岁数,比如11岁,12岁等
from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")

x = range(11, 31)
y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y_2 = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]

fig = plt.figure(figsize=(20,8), dpi=80)
plt.plot(x, y_1,label="自己")
plt.plot(x, y_2, label="同桌")
_x = x
_xtick_labels = ["{}岁".format(i) for i in _x]
plt.xticks(x, _xtick_labels, fontproperties = my_font)

plt.title("11岁到30之间每年交的女朋友数量",fontproperties = my_font)

plt.legend(prop = my_font,loc = "best")

# 绘制网格
plt.grid(alpha = 0.5)

plt.show()

结果展示:image.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib画折线图 的相关文章

  • 使用 scikit 包在 Python 中绘制集群区域的边界

    这是我处理 3 个属性 x y 值 中的数据聚类的简单示例 每个样本代表其位置 x y 及其所属变量 我的代码发布在这里 x np arange 100 200 1 y np arange 100 200 1 value np random
  • 如何从分组数据创建直方图

    我正在尝试根据 pandas 中的分组数据创建直方图 到目前为止 我已经能够创建标准线图 但我不知道如何做同样的事情来获取直方图 条形图 我想获得泰坦尼克号事故中幸存者和未幸存者的 2 个年龄直方图 看看年龄分布是否存在差异 来源数据 ht
  • 是否可以更新动画中的箭袋位置坐标?

    我想用 matplotlib 绘制一些粒子并为其设置动画 每个点都有一个位置和速度 我可以使用 matplotlib 绘制单帧quiver 但是如何更新每一帧的箭袋数据呢 我正在使用 matplotlib 动画类 我读到了有关 未记录 qu
  • 如何调整 matplotlib 单选按钮的大小和纵横比?

    我已经尝试了几个小时来使简单的单选按钮列表的大小和纵横比正确 但没有成功 首先 导入模块 import matplotlib pyplot as plt from matplotlib widgets import RadioButtons
  • Matplotlib loglog 的错误刻度/标签(双轴)

    我正在使用 matplotlib 创建对数图 如下图所示 默认刻度选择得很糟糕 充其量是这样 右边的 y 轴甚至根本没有 在线性等效中确实如此 而两个 x 轴都只有一个 有没有办法获得合理数量的带有标签的刻度 without为每个情节手动指
  • 更改 x 轴比例

    我使用 Matlab 创建了这个图 使用 matplotlib x 轴绘制大数字 例如 100000 200000 300000 我想要 1 2 3 和 10 5 之类的值来指示它实际上是 100000 200000 300000 有没有一
  • 在 Windows 上使用带有对数刻度的 matplotlib 时出现 Unicode 错误

    我正在使用 python 2 6 和 matplotlib 如果我运行 matplotlib 库页面中提供的示例 histogram demo py 它工作正常 我已经大大简化了这个脚本 import numpy as np import
  • 使用艺术家动画每秒拍摄快照

    我使用这个功能 def Plot data plt colormaps n sc shape data 2 ims for i in range n mydata data i im plt imshow mydata cmap plt g
  • matplotlibplot_surface命令的颜色条

    我修改了mplot3d示例代码 http matplotlib sourceforge net examples mplot3d surface3d demo2 html在保罗的帮助下完成我的申请 代码如下 from mpl toolkit
  • 错误:未找到线条魔术函数“%matplotlib”

    我刚刚按照 anaconda 的说明在 Mac MacOS 10 7 5 上安装了 IPythonhttp ipython org install html http ipython org install html 没有明显的错误 我现在
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • 如何更改刻度标签字体大小

    在 matplotlib 图中 如何使用以下命令设置刻度标签的字体大小ax1 set xticklabels 更小 此外 如何将其从水平旋转为垂直 其实还有更简单的方法 我刚刚发现 import matplotlib pyplot as p
  • 加快Python中一个点是否处于某个形状的顺序检查

    我有一个代码 用于顺序确定是否在我的中找到每对笛卡尔坐标DataFrame落入某些几何封闭区域 但我怀疑它相当慢 因为它不是矢量化的 这是一个例子 from matplotlib patches import Rectangle r1 Re
  • 通过 add_subplot 添加子图后如何共享轴?

    我有一个像这样的数据框 df pd DataFrame A 0 3 0 2 0 5 0 2 B 0 1 0 0 0 3 0 1 C 0 2 0 5 0 0 0 7 D 0 6 0 3 0 4 0 6 index list abcd A B
  • 更改 Matplotlib 投影轴的背景颜色

    我正在尝试使用 Cartopy 创建一个图形 该图形需要在未投影的轴上绘制投影轴 这是一个尽可能简单的代码版本 它将轴上的内容替换为背景颜色 import matplotlib pyplot as plt import cartopy cr
  • 如何获取分类数据的分组条形图

    I have a big dataset with information about students And I have to build a graph of dependencies between different value
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • Python Matplotlib 箱线图颜色

    我正在尝试使用 Matplotlib 制作两组箱线图 我希望每组箱线图 以及点和晶须 以不同的颜色填充 所以基本上情节上会有两种颜色 我的代码如下 如果您能帮助将这些图绘制成彩色 那就太好了 d0 and d1是每个数据列表的列表 我想要一
  • 使用 PyQt 和 matplotlib 在可滚动小部件中显示多个绘图

    由于我没有得到答案this https stackoverflow com questions 12179893 creating a scrollable multiplot with pythons pylab我尝试用 PyQt 解决这
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome

随机推荐

  • unity工程运行一段时间堆栈溢出,unity崩溃fatal error in GC. stack overflow

    在这里做一下标记 困扰了我一天的难题 就是栈溢出导致软件奔溃的问题 gc报错 堆栈溢出 代码问题 没有指出具体溢出位置 需要自己慢慢排查 多个个脚本大量的代码排查起来很艰难 首先要抓住的重点位置 1 使用whiletrue的地方 2 使用递
  • 数据库开发考试复习

    文章目录 B树索引结构 B树索引的结构和使用方式 B树索引的使用 什么时候使用B树索引 为什么为外键建立索引是普遍的要求 上面一个问题的例外情况 IOT 大概率不考 B树索引练习 索引 系统生成键 含有索引但未使用的几种情况 位图索引 哈希
  • Unity的C#编程教程_62_语言集成查询 LINQ 详解及应用练习

    文章目录 LINQ Querys 1 Any 2 Contains 3 Distinct 4 Where Challenge Hands on with LINQ LINQ Order by Descending Challenge Fil
  • 代码注释:机器学习实战第8章 预测数值型数据:回归

    写在开头的话 在学习 机器学习实战 的过程中发现书中很多代码并没有注释 这对新入门的同学是一个挑战 特此贴出我对代码做出的注释 仅供参考 欢迎指正 coding gbk from numpy import 作用 从文件中导入数据 输入 文件
  • RocketMQ系列之架构浅谈

    RMQ的架构设计 下面我从GitHub上截取了一张RMQ的源码结构图 图中我框框出来的9大模块 基本就构成了整个RMQ的内部结构 上面9大模块的依赖层次主要如下 依赖越强的越处于底层 下面介绍下最上层的4个模块 这4个模块中工具命令行就不讲
  • 使用cpio命令导致系统几乎崩溃的一次经历

    做嵌入式linux开发 内核编译生成了一个initramfs data cpio文件 发现是一个根文件系统的压缩文件 在windows下可以用IZArc解压 但不能用tar gunzip解压 Windows下使用IZArc解压时 符号链接文
  • CentOS 8 逻辑卷管理LVM详解(扩容、快照等)

    逻辑卷管理LVM 一 概述 二 逻辑卷管理布局 三 LVM1和LVM2 四 使用LVM管理逻辑卷 1 物理卷 1 创建物理卷 2 删除物理卷 2 卷组 1 创建卷组 2 扩展卷组 3 删除卷组 4 减小卷组 3 逻辑卷 1 创建逻辑卷 2
  • 基于TCP的socket通信

    本文转载自http blog csdn net chocolate001 article details 6612201 基于TCP 面向连接 的socket编程 分为客户端和服务器端 客户端的流程如下 1 创建套接字 socket 2 向
  • 修片要点+规则

    一 曝光度 相机的曝光补偿 1 1 快速修改 1 2 细改 二 对比度 白和黑的对比程度 黑的更黑 白的更白 越小越朦胧 越大越清晰 可以让色彩更鲜艳 2 1 設置對比度 三 高光 控制高光部分的曝光度 3 1 設置高光 四 阴影 控制阴影
  • 微服务契约测试框架-Pact

    契约测试 契约测试的思想就是将原本的 Consumer 与 Provider 间同步的集成测试 通过契约进行解耦 变成 Consumer 与 Provider 端两个各自独立的 异步的单元测试 契约测试的优点 契约测试与单元测试以及其它测试
  • PT100所谓的二线制,三线制,四线制如何接线(详解)

    PT100所谓的二线制 三线制 四线制如何接线 铂热电阻是利用铂丝的电阻值随着温度的变化而变化的 那么铂热电阻的三种接线方法以及消除误差的原理是怎么样的呢 二线制 二线制 在热电阻的两端各连接一根导线来引出电阻信号的方式叫二线制 这种引线方
  • PyOpenGL帧缓存

    安装 python m pip install PyOpenGL PyOpenGL accelerate i http mirrors aliyun com pypi simple trusted host mirrors aliyun c
  • java-使用newTaskFor封装任务中非标准取消

    1 使用newTaskFor钩子函数来改进用来封装非标准取消的方法 这是ThreadPoolExecutor的新特性 2 当提交一个callable给ExecutorService时 submit返回一个Future 可以用Future来取
  • 【Python开发】Python中数据分析环境的搭建

    注 无论是任何一门语言 刚开始入门的时候 语言运行环境的搭建都是一件不轻松的事情 Python的运行环境 要运行或写Python代码 就需要Python的运行环境 主要的Python有以下三类 原生态的Python 就是直接从Python的
  • KVM管理平台选型与开源企业级虚拟化平台oVirt详解

    一 KVM管理平台 虚拟化和云计算以在当今IT工业中的用途和优势 成为近年来的技术热点之一 其发展非常迅速 搞KVM虚拟化的时候 面临的一个很重要的问题是 管理平台如何搞定 目前 已经出现了很多与KVM相关的管理工具和云计算平台 比较知名和
  • go memcpy

    来源 https github com jsgilmore shm callback syscall NewCallback func r uintptr size int ret uintptr 定义一个 byte切片 用来存储C返回的字
  • 代码随想录算法训练营第二天

    1 双指针法 leetcode 题977 给你一个按 非递减顺序 排序的整数数组 nums 返回 每个数字的平方 组成的新数组 要求也按 非递减顺序 排序 1 1 暴力解法 先求出数组所有值的平方 然后再排序 1 2 双指针法 i指向初始位
  • MySQL中时间函数(史上最全的时间函数)

    一 MySQL 获得当前日期时间 函数 获得当前日期 时间 date time 函数 now mysql gt select now now 2019 08 19 10 23 46 除了 now 函数能获得当前的日期时间外 MySQL 中还
  • Spring Data Elasticsearch篇(3):ElasticsearchRepository文档操作

    1 ElasticsearchRepository 1 1 ElasticsearchRepository源码 NoRepositoryBean public interface ElasticsearchRepository
  • matplotlib画折线图

    matplotlib画折线图 假设一天中每隔两个小时 range 2 26 2 的气温 分别是 15 13 14 5 17 20 25 26 26 27 22 18 15 代码如下 导入pyplot from matplotlib impo