matplotlib共享坐标轴的实现(X或Y坐标轴)

前言  

1. 概述

共享坐标轴就是几幅子图之间共享x轴或y轴,这一部分主要了解如何在利用matplotlib制图时共享坐标轴。

pyplot.subplots(nrows = 1,ncols = 1,sharex = False,sharey = False,
squeeze = True,subplot_kw =无,gridspec_kw =无,** fig_kw )

参数:
nrows:行数
ncols:列数
sharex:是否共享X轴坐标
sharey:是否共享Y轴坐标
返回值:Figure,Axes对象数组

一、sharex和sharey 代码示例:

'''
1. 程序目的:
   基于sharex和sharey实现
     (1) 共享x轴
     (2) 共享y轴
     (3) 同时共享x轴和y轴
     (4) 调整子图之间的距离

2. 版本
   2.1 山东青岛  2021年5月18日  Version 1

'''

# 1. 相关模块导入
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示中文字体
plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号

# 2. 创建制图数据
x = np.linspace(-5,5,100)
y_1 = np.sin(x)
y_2 = np.cos(x)
y_3 = y_2*2

# 3. 绘图
  # 3.1 共享X轴
figure,(ax1,ax2,ax3) = plt.subplots(3,1,
                                    figsize=(5,6),
                                    dpi=600,
                                    # 共享x轴
                                    sharex=True)

ax1.plot(x,y_1,c='blue',linestyle=':')
ax2.plot(x,y_2,c='orange',linestyle=':')
ax3.plot(x,y_3,c='r',linestyle=':')

    # 调整子图形之间的纵向距离
figure.subplots_adjust(hspace=0.1) 

ax1.set_title('以下三图共享了X轴')  # 其实更合理的添加图名时figure.subtitle()

  # 3.2 共享Y轴
    # 创建新的绘图figure和axes对象
figure,(ax1,ax2,ax3) = plt.subplots(1,3,
                                    figsize=(6,2),
                                    dpi=600,
                                    # 共享y轴
                                    sharey=True)
figure.suptitle('以下三图共享了Y轴')
ax1.plot(x,y_1,c='blue',linestyle=':')
ax2.plot(x,y_2,c='orange',linestyle=':')
ax3.plot(x,y_3,c='r',linestyle=':')
    # 调整子图形之间的横向距离
figure.subplots_adjust(wspace=0.1) 

  # 3.3 同时共享x轴和y轴
    # 创建新的绘图figure和axes对象
figure,(ax1,ax2,ax3) = plt.subplots(1,3,
                                    figsize=(6,2),
                                    dpi=600,
                                    # 共享x轴
                                    sharex=True,
                                    # 共享y轴
                                    sharey=True)

x4 = np.linspace(-10,10,100)
y_4 = np.cos(x4)*2

figure.suptitle('以下三图同时共享了X轴和Y轴')
ax1.plot(x,y_1,c='blue',linestyle=':')
ax2.plot(x,y_2,c='orange',linestyle=':')
ax3.plot(x4,y_4,c='r',linestyle=':')

    # 调整子图形之间的横向距离
figure.subplots_adjust(wspace=0.1) 

plt.show()

制图结果:

实例2

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
x=np.linspace(0,2*np.pi,500)
y=np.sin(x)*np.exp(-x)
fig,ax=plt.subplots(nrows=1,ncols=2,sharey=True)
ax1=ax[0]
ax1.plot(x,y)
ax1.set_title("折线图")

ax2=ax[1]
ax2.scatter(x,y)
ax2.set_title("散点图")
plt.suptitle("一张画布两个子图,并共享y坐标")
#删除空隙wspace为两图的水平距离,hspace为两图的垂直距离
fig.subplots_adjust(wspace=0)
plt.show()

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
x=np.linspace(0,2*np.pi,500)
y=np.sin(x)*np.exp(-x)
fig,ax=plt.subplots(nrows=1,ncols=1)
ax.plot(x,y)
ax.set_title("折线图")
ax.scatter(x,y[::-1])
plt.suptitle("共享单一绘图区域的坐标轴")
plt.show()

到此这篇关于matplotlib共享坐标轴的实现(X或Y坐标轴)的文章就介绍到这了,更多相关matplotlib共享坐标轴内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python利用matplotlib做图中图及次坐标轴的实例

    图中图 准备数据 import matplotlib.pyplot as plt fig = plt.figure() x = [1, 2, 3, 4, 5, 6, 7] y = [1, 3, 4, 2, 5, 8, 6] - 大图 首先确定大图左下角的位置以及宽高: 注意,4个值都是占整个figure坐标系的百分比.在这里,假设figure的大小是10x10,那么大图就被包含在由(1, 1)开始,宽8,高8的坐标系内. # below are all percentage left, bott

  • Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围

    一.用默认设置绘制折线图 import matplotlib.pyplot as plt x_values=list(range(11)) #x轴的数字是0到10这11个整数 y_values=[x**2 for x in x_values] #y轴的数字是x轴数字的平方 plt.plot(x_values,y_values,c='green') #用plot函数绘制折线图,线条颜色设置为绿色 plt.title('Squares',fontsize=24) #设置图表标题和标题字号 plt.t

  • 对python中Matplotlib的坐标轴的坐标区间的设定实例讲解

    如下所示: <span style="font-family: Arial, Helvetica, sans-serif;">>>> import numpy as np</span> >>> import matplotlib.pyplot as plt >>> x=np.arange(-5,5,0.01) >>> y=x**3 >>> plt.axis([-6,6,-1

  • python matplotlib画盒图、子图解决坐标轴标签重叠的问题

    在使用matplotlib画图的时候将常会出现坐标轴的标签太长而出现重叠的现象,本文主要通过自身测过好用的解决办法进行展示,希望也能帮到大家,原图出现重叠现象例如图1: 代码为: data1=[[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765]] data

  • Python绘图Matplotlib之坐标轴及刻度总结

    学习https://matplotlib.org/gallery/index.html 记录,描述不一定准确,具体请参考官网 Matplotlib使用总结图 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号 import pandas as pd import nump

  • python matplotlib坐标轴设置的方法

    在使用matplotlib模块时画坐标图时,往往需要对坐标轴设置很多参数,这些参数包括横纵坐标轴范围.坐标轴刻度大小.坐标轴名称等 在matplotlib中包含了很多函数,用来对这些参数进行设置. 我们可以对坐标轴进行设置,设置坐标轴的范围,设置坐标轴上的文字描述等. 基本用法 例如: import numpy as np import pandas as pd import matplotlib.pyplot as plt # 生成x轴上的数据:从-3到3,总共有50个点 x = np.lin

  • Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度

    前言 matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作.每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建一个新的作图区域(plotting area),在一个作图区域内画直线,给图添加标签(label)等.matplotlib.pyplot是有状态的,亦即它会保存当前图片和作图区域的状态,新的作图函数会作用在当前图片的状态基础之上. 在开始本文之前,不熟悉的朋友可以先看看这篇文章:Python

  • Matplotlib自定义坐标轴刻度的实现示例

    虽然 Matplotlib 默认的坐标轴定位器(locator)与格式生成器(formatter)可以满足大部分需求,但是并非对每一幅图都合适.此次我将通过一些示例演示如何将坐标轴刻度调整为你需要的位置与格式. 在介绍示例之前,我们最好先对 Matplotlib 图形的对象层级有更深入的理解.Matplotlib 的目标是用 Python 对象表现任意图形元素.例如,想想前面介绍的 figure 对象,它其实就是一个盛放图形元素的包围盒(bounding box).可以将每个 Matplotli

  • python使用Matplotlib改变坐标轴的默认位置

    使用Matplotlib绘制的图表的默认坐标轴是在左下角的,这样对于一些函数的显示不是非常方便,要改变坐标轴的默认显示方式主要要使用gca()方法 plt.gca()表示 Get current axis,使用这个方法我们可以获得整张图表的坐标对象,这样我们就可以对坐标进行处理了,像移动位置,设置颜色之类的,类似plt.gcf()这个是 Get current figure 即获得当前图表的图像,对图像进行处理. 我们可以定义一个变量接收这个值: ax = plt.gca() 接下来还要了解一个

  • matplotlib共享坐标轴的实现(X或Y坐标轴)

    前言   1. 概述 共享坐标轴就是几幅子图之间共享x轴或y轴,这一部分主要了解如何在利用matplotlib制图时共享坐标轴. pyplot.subplots(nrows = 1,ncols = 1,sharex = False,sharey = False, squeeze = True,subplot_kw =无,gridspec_kw =无,** fig_kw ) 参数: nrows:行数 ncols:列数 sharex:是否共享X轴坐标 sharey:是否共享Y轴坐标 返回值:Figu

  • matplotlib.subplot()画子图并共享y坐标轴的方法

    有时候想要把几张图放在一起plot,比较好对比,subplot和subplots都可以实现,具体对比可以查看参考博文.这里用matplotlib库的subplot来举个栗子. 数据长什么样 有两个数据段,第一个数据是DataFrame类型,第二个是ndarray类型.每个数据都有3列,我想画1*3的折线子图,第一个数据的第n列和第二个数据的第n列画在一张子图上.先来看一下两个数据长什么样儿(为显示方便,只看前5行). In [1]: testing_set.head() # DataFrame类

  • Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例

    本文实例讲述了Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息.分享给大家供大家参考,具体如下: 进行图像绘制有时候需要设定坐标轴以及图像标题等信息,示例代码如下: #-*- coding: utf-8 -*- #!/usr/bin/python import matplotlib.pyplot as plt from numpy.random import randn x = range(100) y = randn(100) fig = plt.figure() ax

  • python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法

    1. test.txt文件,数据以逗号分割,第一个数据为x坐标,第二个为y坐标,数据如下:1.1,2 2.1,2 3.1,3 4.1,5 40,38 42,41 43,42 2. python部分代码 #!/usr/bin/python # coding: utf-8 import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.family'] = 'sans-ser

  • matplotlib之pyplot模块坐标轴范围设置(autoscale(),xlim(),ylim())

    matplotlib默认根据数据系列自动缩放坐标轴范围.pyplot模块中的autoscale函数可以切换是否自动缩放坐标轴范围,xlim()和ylim()函数可手动设置坐标轴范围. autoscale函数 对于pyplot模块控制坐标轴范围是否自动缩放的函数为autoscale. 函数签名为matplotlib.pyplot.autoscale(enable=True, axis='both', tight=None) 参数作用及取值如下: enable为布尔值,即是否自动缩放. axis取值

  • C语言控制台应用程序GDI绘制正弦曲线

    出于本科教学的目的,需要使用C语言在Visual Studio下控制台应用程序中动态绘制曲线,在此查阅了一些资料,制作了一个绘制动态正弦曲线的Demo,大家可根据这个例子查阅GDI.GDI+手册,根据需求丰富自己的绘图程序. #include <windows.h>//引入wingdi.h #include <stdio.h> #include <math.h> #include <time.h> #include <conio.h> #defi

  • 学习python中matplotlib绘图设置坐标轴刻度、文本

    总结matplotlib绘图如何设置坐标轴刻度大小和刻度. 上代码: from pylab import * from matplotlib.ticker import MultipleLocator, FormatStrFormatter xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数 xmajorFormatter = FormatStrFormatter('%1.1f') #设置x轴标签文本的格式 xminorLocator = M

  • Python matplotlib学习笔记之坐标轴范围

    Python学习笔记--坐标轴范围 参靠视频:<Python数据可视化分析 matplotlib教程>链接:https://www.bilibili.com/video/av6989413/?p=6 所用的库及环境: IDE:Pycharm Python环境:python3.7 Matplotlib: Matplotlib 1.11 Numpy: Numpy1.15. 坐标轴范围 概念 根据需求调整坐标轴的范围 坐标轴范围调整 第一种形式 通过plt.axis()可以查看图形的x轴的最小最大坐

  • matplotlib如何设置坐标轴刻度的个数及标签的方法总结

    第一种方式: 通过pyplot进行设置,通过pyplot下的xticks进行设置,这个api的原型如下: matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs) ticks:array-like, optional 表示xtick 位置列表,传递一个空列表会删除所有 xticks. labels:array-like, optional 要放置在给定刻度ticks位置的标签.仅当也传递刻度ticks时才能传递此参数. 其他常用的参数

随机推荐