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 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python 画图多个y轴 -> 正文阅读

[Python知识库]python 画图多个y轴

from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxes
import matplotlib.pyplot as plt
import numpy as np
    # 图层可分为四种
    #
    # Canvas层 画布层 位于最底层,用户一般接触不到。 matplotlib.pyplot就是一个canvas层
    # Figure层 图像层 建立在Canvas之上。 plt.figure()就是一个figure层
    # Axes层 坐标层 建立在Figure之上。fig.add_axes(ax)就加一个Axes层ax在figure上,这时就可以画出一个空白的坐标了。
    # plot层 绘制层 坐标轴、图例等辅助信息层以及图像层都是建立在Axes之上
    #定义一个画图,确定画图区域(画线区域不包括坐标轴和标题部分)
def pltmlty(data1x,data1y,data2x,data2y,data3x,data3y,data4x,data4y,data5x,data5y):
    fig = plt.figure() #定义figure,(1)中的1是什么
    ax_cof = HostAxes(fig, [0.1, 0.1, 0.8, 0.8])  #用[left, bottom, weight, height]的方式定义axes,0 <= l,b,w,h <= 1
    #定义几个坐标轴
    #parasite addtional axes, share x
    ax_temp = ParasiteAxes(ax_cof, sharex=ax_cof)
    ax_load = ParasiteAxes(ax_cof, sharex=ax_cof)
    ax_cp = ParasiteAxes(ax_cof, sharex=ax_cof)
    ax_wear = ParasiteAxes(ax_cof, sharex=ax_cof)
    #把定义的坐标轴周添加到图中
    #append axes
    ax_cof.parasites.append(ax_temp)
    ax_cof.parasites.append(ax_load)
    ax_cof.parasites.append(ax_cp)
    ax_cof.parasites.append(ax_wear)

    #设置主坐标系的上右轴不显示,主轴的y坐标系在左边
    #invisible right axis of ax_cof
    ax_cof.axis['right'].set_visible(False)
    ax_cof.axis['top'].set_visible(False)
    ax_temp.axis['right'].set_visible(True)
    ax_temp.axis['right'].major_ticklabels.set_visible(True)#刻度
    ax_temp.axis['right'].label.set_visible(True)#标题

    #set label for axis
    ax_cof.set_ylabel('cof')
    ax_cof.set_xlabel('Distance (m)')
    ax_temp.set_ylabel('Temperature')
    ax_load.set_ylabel('load')
    ax_cp.set_ylabel('CP')
    ax_wear.set_ylabel('Wear')
    #设置多个y轴的位置,其中的字典自己定义
    load_axisline = ax_load.get_grid_helper().new_fixed_axis
    cp_axisline = ax_cp.get_grid_helper().new_fixed_axis
    wear_axisline = ax_wear.get_grid_helper().new_fixed_axis
    ax_load.axis['rightpp'] = load_axisline(loc='right', axes=ax_load, offset=(40,0))
    ax_cp.axis['right3'] = cp_axisline(loc='right', axes=ax_cp, offset=(80,0))
    ax_wear.axis['right4'] = wear_axisline(loc='right', axes=ax_wear, offset=(120,0))

    #主图添加到图布
    fig.add_axes(ax_cof)

    ''' #set limit of x, y
    ax_cof.set_xlim(0,2)
    ax_cof.set_ylim(0,3)
    '''
    #画图
    curve_cof, = ax_cof.plot(data1x, data1y, label="CoF", color='black')
    curve_temp, = ax_temp.plot(data2x, data2y, label="Temp", color='red')
    curve_load, = ax_load.plot(data3x, data3y, label="Load", color='green')
    curve_cp, = ax_cp.plot(data4x, data4y, label="CP", color='pink')
    curve_wear, = ax_wear.plot(data5x, data5y, label="Wear", color='blue')

    #设置坐标系范围
    # ax_temp.set_ylim(0,4)
    # ax_load.set_ylim(0,4)
    # ax_cp.set_ylim(0,50)
    # ax_wear.set_ylim(0,30)
    #显示所有legend
    ax_cof.legend()

    #轴名称,刻度值的颜色
    #ax_cof.axis['left'].label.set_color(ax_cof.get_color())
    ax_temp.axis['right'].label.set_color('red')
    ax_load.axis['rightpp'].label.set_color('green')
    ax_cp.axis['right3'].label.set_color('pink')
    ax_wear.axis['right4'].label.set_color('blue')
    #刻度颜色
    ax_temp.axis['right'].major_ticks.set_color('red')
    ax_load.axis['rightpp'].major_ticks.set_color('green')
    ax_cp.axis['right3'].major_ticks.set_color('pink')
    ax_wear.axis['right4'].major_ticks.set_color('blue')
    #刻度标签颜色
    ax_temp.axis['right'].major_ticklabels.set_color('red')
    ax_load.axis['rightpp'].major_ticklabels.set_color('green')
    ax_cp.axis['right3'].major_ticklabels.set_color('pink')
    ax_wear.axis['right4'].major_ticklabels.set_color('blue')
    #y轴线颜色
    ax_temp.axis['right'].line.set_color('red')
    ax_load.axis['rightpp'].line.set_color('green')
    ax_cp.axis['right3'].line.set_color('pink')
    ax_wear.axis['right4'].line.set_color('blue')

Python-Matplotlib折线图绘制----y轴刻度不同 <lpliner>-python黑洞网

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:21:19  更:2021-10-18 17:23:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:08:56-

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