IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python3+matplotlib绘制双轴折线图(两种方法) -> 正文阅读

[人工智能]python3+matplotlib绘制双轴折线图(两种方法)

Background

这里提供两种方法,一种是基于pandas,另一种是基于twinx。

1、先看最终效果图

  • pandas
    在这里插入图片描述
  • twinx
    在这里插入图片描述

2、源码

import pandas as pd
import random
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator


def draw1(lx, dy, title):
    """画双轴折线图
    :param lx x轴数据集合
    :param dy y轴数据字典
    """
    # 设置图片可以显示中文和特殊字符
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    df = pd.DataFrame(dy, index=lx)
    fyt = list(dy.keys())[0]
    syt = list(dy.keys())[1]
    ax = df.plot(secondary_y=[syt], x_compat=True, grid=True, linewidth=0.8)
    ax.set_title(title)
    ax.set_ylabel(fyt)
    ax.grid(linestyle="--", alpha=0.3)
    ax.right_ax.set_ylabel(syt)
    plt.show()


def draw2(lx, dy, title):
    """画双轴折线图
    :param lx x轴数据集合
    :param dy y轴数据字典
    """
    # 设置图片可以显示中文和特殊字符
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    fyt = list(dy.keys())[0]
    syt = list(dy.keys())[1]
    plt.figure(figsize=(8, 5), dpi=120)
    plt.plot(lx, dy.get(fyt), label=fyt, linewidth=0.8, color='b')
    plt.grid(linestyle="--", alpha=0.3)
    plt.title(title, fontsize=12)
    plt.xticks(rotation=30)
    plt.ylabel(fyt, fontsize=9)
    # plt.ylim(-10, 30)
    plt.legend(loc='upper left')
    # 调用twinx后可绘制次坐标轴
    plt.twinx()
    plt.plot(lx, dy.get(syt), label=syt, linewidth=0.8, color='y')
    plt.ylabel(syt, fontsize=9)
    # plt.ylim(-60, 50)
    plt.legend(loc='upper right')
    # 设置x轴刻度
    ax = plt.gca()
    ax.xaxis.set_major_locator(MultipleLocator(2))
    plt.show()


def main():
    """主函数"""
    lx = pd.period_range(start='2022-01', periods=12, freq="M")
    y1 = [round(random.random(), 3) for i in range(12)]
    y2 = [random.randint(1, 40) for i in range(12)]
    dy = {'应力(MPa)': y1, '温度(℃)': y2}
    title = '应力随温度变化情况'
    # draw1(lx, dy, title)
    lxx = [str(i) for i in list(lx)]
    draw2(lxx, dy, title)


if __name__ == '__main__':
    main()

3、另附两条线分开显示的方法

  • 效果图

在这里插入图片描述

  • 方法就是设置y轴的刻度范围
    在这里插入图片描述
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:22:47  更:2022-04-01 23:22:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 0:19:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码