精华内容
下载资源
问答
  • 作为Python生态中应用最广泛的绘图库,...对于初学者来说,反转坐标、绘制双轴(将两个动态范围不同的数据绘制在一张图上,分别使用两个不同的坐标)有一定难度,改变坐标刻度的样式或内容,更是无从下手。

    作为Python生态中应用最广泛的绘图库,Matplotlib用起来非常简单,也很容易上手。不过有些细节想要做得尽善尽美,就需要仔细阅读它的文档了。对于初学者来说,反转坐标轴、绘制双轴(将两个动态范围不同的数据绘制在一张图上,分别使用两个不同的坐标轴)有一定难度,改变坐标轴刻度的样式或内容,更是无从下手。

    本文汇总了和轴、刻度相关的七个Matplotlib使用技巧,并给出了实例代码。

    1 反转坐标轴

    使用axes.invert_xaxis() 函数和axes.invert_yaxis() 函数可分别反转x轴和y轴。这两个函数均不需要任何参数。下面的例子使用图像绘制函数 imshow() 来演示反转轴。imshow() 函数通过origin参数实现y轴反转,这里将其固定为“lower”。

    import numpy as np
    from matplotlib import pyplot as plt
    
    plt.rcParams['font.sans-serif'] = ['FangSong']
    plt.rcParams['axes.unicode_minus'] = False
    
    y, x = np.mgrid[-2:2:200j, -3:3:300j]
    z = np.exp(-x**2-y**2) - np.exp(-(x-1)**2-(y-1)**2)
    
    fig = plt.figure()
    ax1 = fig.add_subplot(221)
    ax2 = fig.add_subplot(222)
    ax3 = fig.add_subplot(223)
    ax4 = fig.add_subplot(224)
    ax1.imshow(z, cmap='jet', origin='lower')
    ax2.imshow(z, cmap='jet', origin='lower')
    ax3.imshow(z, cmap='jet', origin='lower')
    ax4.imshow(z, cmap='jet', origin='lower')
    ax2.invert_xaxis()
    ax3.invert_yaxis()
    ax4.invert_xaxis()
    ax4.invert_yaxis()
    ax1.set_title("正常的X、Y轴")
    ax2.set_title("反转X轴")
    ax3.set_title("反转Y轴")
    ax4.set_title("反转X、Y轴")
    plt.show()
    

    反转轴后的效果如下图 所示。

    在这里插入图片描述

    2 绘制双轴

    Matplotlib支持在一个子图上显示两个x轴或两个y轴。使用axes.twinx()函数可显示双x轴,使用 axes.twiny() 函数可显示双 y 轴。以下代码演示了使用 axes.twiny() 函数显示双 y 轴。

    import numpy as np
    from matplotlib import pyplot as plt
    
    plt.rcParams['font.sans-serif'] = ['FangSong']
    plt.rcParams['axes.unicode_minus'] = False
    
    x = np.linspace(-2*np.pi, 2*np.pi, 200)
    y1 = np.square(x)
    y2 = np.cos(x)
    
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
    ax_twinx = ax.twinx()
    ax.plot(x, y1, c='r')
    ax_twinx.plot(x, y2, c='g', ls='-.')
    plt.show()
    

    效果如下图所示。
    在这里插入图片描述

    3 设置坐标轴范围

    使用axes.set_xlim(left, right) 和axes.set_ylim(bottom, top) 函数设置x 与y轴的显示范围。函数参数分别是能够显示的最小值和最大值,如果最大值或最小值为 None,则表示只限制坐标轴一端的值域范围。

    import numpy as np
    from matplotlib import pyplot as plt
    
    x = np.linspace(0, 2*np.pi, 100)
    y = np.sin(x)
    
    fig = plt.figure()
    ax1 = fig.add_subplot(121)
    ax1.plot(x, y, c='r')
    ax1.set_ylim(-0.8, 0.8)
    ax2 = fig.add_subplot(122)
    ax2.plot(x, y, c='g')
    ax2.set_xlim(-np.pi, 3*np.pi)
    plt.show()
    

    以上代码重新设置了子图坐标轴范围,效果如下图所示。左图缩小了 y 轴的范围,右图扩大了 x 轴的范围。

    在这里插入图片描述

    4 设置主副刻度

    主副刻度常用于日期时间轴,如主刻度显示年份,副刻度显示月份。非线性的对数轴往往也需要显示副刻度。Matplotlib提供了4个函数来设置x轴和y轴的主副刻度。

    • ax.xaxis.set_major_locator(locator) :用于设置 x 轴主刻度。
    • ax.xaxis.set_minor_locator(locator) :用于设置 x 轴副刻度。
    • ax.yaxis.set_major_locator(locator) :用于设置 y 轴主刻度。
    • ax.yaxis.set_minor_locator(locator) :用于设置 y 轴副刻度。

    函数的locator参数实例有两种,分别是来自ticker和dates两个子模块中有关刻度的子类实例。下面的代码演示了在x轴上设置日期时间相关的主副刻度。

    import numpy as np
    from matplotlib import pyplot as plt
    import matplotlib.dates as mdates
    
    x = np.arange('2019-01', '2019-06', dtype='datetime64[D]')
    y = np.random.rand(x.shape[0])
    
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
    ax.plot(x, y, c='g')
    ax.xaxis.set_major_locator(mdates.MonthLocator())
    ax.xaxis.set_major_formatter(mdates.DateFormatter('\n%Y-%m-%d'))
    ax.xaxis.set_minor_locator(mdates.DayLocator(bymonthday=(1,11,21)))
    ax.xaxis.set_minor_formatter(mdates.DateFormatter('%d'))
    plt.show()
    

    效果如下图所示。
    在这里插入图片描述

    5 设置刻度显示密度

    Matplotlib的ticker子模块包含的Locator类是所有刻度类的基类,负责根据数据的范围自动调整视觉间隔以及刻度位置的选择。MultipleLocator是Locator的派生类,能够控制刻度的疏密。

    import numpy as np
    from matplotlib import pyplot as plt
    from matplotlib.ticker import MultipleLocator
    
    plt.rcParams['font.sans-serif'] = ['FangSong']
    plt.rcParams['axes.unicode_minus'] = False
    
    x = np.linspace(0, 4*np.pi, 500)
    
    fig = plt.figure()
    ax1 = fig.add_subplot(121)
    ax1.plot(x, np.sin(x), c='m')
    ax1.yaxis.set_major_locator(MultipleLocator(0.3))
    ax2 = fig.add_subplot(122)
    ax2.plot(x, np.sin(x), c='m')
    ax2.xaxis.set_major_locator(MultipleLocator(3))
    ax2.xaxis.set_minor_locator(MultipleLocator(0.6))
    ax1.set_title('X轴刻度自动调整,Y轴设置刻度间隔0.3')
    ax2.set_title('X轴设置主刻度间隔3副刻度间隔0.6,Y轴刻度自动调整')
    plt.show()
    

    以上代码创建了两个子图,绘图结果如下图所示,左图演示了如何设置 y 轴的主刻度密度,右图演示了如何设置 x 轴主刻度和副刻度的密度。
    在这里插入图片描述

    6 设置刻度文本样式

    设置刻度文本的颜色、字体、字号或旋转文本等样式,需要使用axes.get_xticklabels() 或axes.get_yticklabels() 函数获取x轴或y轴的文本对象列表。文本对象中包含设置文本大小、颜色、旋转角度的函数,使用对应函数即可完成设置。

    import numpy as np
    from matplotlib import pyplot as plt
    import matplotlib.dates as mdates
    
    x = np.arange('2019-01', '2020-01', dtype='datetime64[D]')
    y = np.random.rand(x.shape[0])
    
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.3, 0.8, 0.6])
    ax.plot(x, y, c='g')
    ax.xaxis.set_major_locator(mdates.MonthLocator())
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))
    
    for lobj in ax.get_xticklabels():
        lobj.set_rotation(35)
        lobj.set_size(12)
        lobj.set_color('blue')
    
    plt.show()
    

    以上代码设置 x 轴的刻度文本字号大小为 12 号、颜色为蓝色,并将刻度文本逆时针旋转35°,效果如下图所示。
    在这里插入图片描述

    7 设置刻度文本内容

    在有些应用场景中,需要将 x 轴或 x 轴刻度上的文字设置为更有标识意义的内容。使用set_xticklabels( ) 和 set_yticklabels( ) 函数可以替换刻度文本,不过只适用于所有可能的取值都已经显示在坐标轴上的情况。例如,x 轴对应的是列表[0,1,2,3],共4个取值,显示的刻度也是4个,此时可以使用 [’ 一季度 ‘,’ 二季度 ‘,’ 三季度 ‘,’ 四季度 '] 替换对应的数值。

    Matplotlib 提供了强大的刻度文本格式化功能,ticker.Formatter 作为基类派生出了多种形式的格式化类,FuncFormatter就是其中之一。使用FuncFormatter可以更加灵活地设置刻度文本内容。

    import numpy as np
    from matplotlib import pyplot as plt
    from matplotlib.ticker import FuncFormatter
    
    plt.rcParams['font.sans-serif'] = ['FangSong'] # 设置字体以便正确显示汉字
    plt.rcParams['axes.unicode_minus'] = False # 正确显示连字符
    
    x = np.linspace(0, 10, 200)
    y = np.square(x)
    
    def func_x(x, pos):
        return '%0.2f秒'%x
    
    def func_y(y, pos):
        return '%0.2f°C'%y
    
    formatter_x = FuncFormatter(func_x)
    formatter_y = FuncFormatter(func_y)
    
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
    ax.plot(x, y, c='r')
    ax.xaxis.set_major_formatter(formatter_x)
    ax.yaxis.set_major_formatter(formatter_y)
    plt.show()
    

    以上代码将x轴和y轴的刻度文本格式化为百分之一的精度,并附带度量单位,绘图结果如下图所示。
    在这里插入图片描述

    展开全文
  • 在这支鼠标的时候,看到了这么个东西 上图中的"反转卷轴方向"如果被选中: ①当你向下滑动鼠标中间滚轮的时候,页面向上滚动 ②当你向上滑动鼠标中间滚轮的时候,页面向下滚动

    在这支鼠标的时候,看到了这么个东西

    上图中的"反转卷轴方向"如果被选中:

    ①当你向下滑动鼠标中间滚轮的时候,页面向上滚动

    ②当你向上滑动鼠标中间滚轮的时候,页面向下滚动

    展开全文
  • 需求如下图:展示的是每个月的排名信息,需要将Y进行反转,但是不需要反转X 配置如下: //如果只有这一行代码:x和y都会翻转 yAxis: { inverse: true }, //以下代码意思为 :轴线是否在另一个的0刻度...

    需求如下图:展示的是每个月的排名信息,需要将Y轴进行反转,但是不需要反转X轴

     配置如下:

    //如果只有这一行代码:x和y轴都会翻转
    yAxis: {
        inverse: true
    },
    //以下代码意思为 :轴线是否在另一个轴的0刻度线上。
    //设置 false 就会回到 bottom处
    xAxis: {
        axisLine: {
          onZero: false
        }
    },

     

     

    展开全文
  • 国外的绿色软件,打开直接用,点击x或者y后,方向马上改变,随机自启动后,对于自制的轨迹球键鼠来说,是个福音,用大品牌优质算法的键鼠,改装成轨迹球键鼠后,能达到生产力级别的键鼠。
  • Highcharts 反转x与y

    千次阅读 2018-12-13 21:26:23
    一 代码 <html> <...Highcharts 反转x与y</title> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">&

    一 代码

    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Highcharts 反转x轴与y轴</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    </head>
    <body>
    <div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div>
    <script language="JavaScript">
    $(document).ready(function() {
       //图表类型
       //将 chart 的 inverted 属性设置为 true,X轴为垂直,Y轴为水平的。
       var chart = {
          type: 'area',
         inverted: true
       };
       //标题
       var title = {
          text: '一周平均水果消费'
       };
       //子标题
       var subtitle = {
          style: {
             position: 'absolute',
             right: '0px',
             bottom: '10px'
          }
       };
       var legend = {
          layout: 'vertical',
          align: 'left',
          verticalAlign: 'top',
          x: -150,
          y: 100,
          floating: true,
          borderWidth: 1,
          backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
       };
       //X 轴
       var xAxis = {
          categories: ['周一','周二','周三','周四','周五','周六','周天']
       };
       //Y 轴
       var yAxis = {
          title: {
             text: '数量'
          },
          labels: {
             formatter: function () {
                return this.value;
             }
          },
         min: 0
       };
       var plotOptions = {
          area: {
             fillOpacity: 0.5
          }
       };
       var credits = {
          enabled: false
       };
       //数据
       var series= [{
            name: '小明',
                data: [3, 4, 3, 5, 4, 10, 12]
            }, {
                name: '小马',
                data: [1, 3, 4, 3, 3, 5, 4]
          }
       ];
    
       var json = {};
       json.chart = chart;
       json.title = title;
       json.subtitle = subtitle;
       json.xAxis = xAxis;
       json.yAxis = yAxis;
       json.legend = legend;
       json.plotOptions = plotOptions;
       json.credits = credits;
       json.series = series;
       $('#container').highcharts(json);
    
    });
    </script>
    </body>
    </html>

    二 运行结果

    展开全文
  • matlab(3):坐标轴反转

    千次阅读 2020-04-22 13:27:45
    set(gca,'XDir','reverse')%对X方向反转 set(gca,'YDir','reverse')%对Y方向反转
  • MATLAB plot 坐标轴反转

    2021-06-07 15:27:20
    若想将PLOT画图坐标由默认的从小到大变为从大到小,可以在画图命令后面,紧跟着加上此命令即可: set(gca,'XDir','reverse') %对X方向反转 set(gca,'YDir','reverse') %对Y方向反转
  • echarts-反转坐标

    2018-02-27 11:39:00
    1 yAxis : [ 2 { ... 设置坐标名称显示位置 ...inverse: true //反转坐标 25 } 26 ] 反转坐标的效果图:   转载于:https://www.cnblogs.com/tian-long/p/8478034.html
  • x,y坐标轴反转后,Y不能显示中文,变成了数字 ![图片说明](https://img-ask.csdn.net/upload/202010/23/1603443045_890092.png) 即使代码这样写: ``` ins2=['人','2人','3人','人','2人','3人','人'...
  • MATLAB PLOT 坐标轴反转

    万次阅读 2017-06-28 14:43:53
    若想将PLOT画图坐标由默认的从小到大变为从大到小,可以在画图命令后面,紧跟着加上此命令即可: set(gca,'XDir','reverse')%对X方向反转set(gca,'YDir','reverse')%对Y方向反转
  • Echart怎么把X轴反转

    千次阅读 2018-11-08 17:00:03
    具体实现代码如下 解决echarts 负,浮动负数,等的显示 function chart_rkk(){  var rkkchart=echarts.init(document.getElementById('rkkDiv'));  var ageArea = [ '0~10','11~30','30~60','60~100','100以上...
  • matlab 画矩阵图像,Y坐标反转

    千次阅读 2020-10-30 12:01:33
    clc; clear all ...这里得到的图片,其Y的坐标是自上到下增大的,如何处理呢?如下即可 figure(‘name’, ‘plot_matA2’) imagesc(A); colorbar; % axis off set(gca,‘YDir’,‘normal’) ...
  • python-sns.heatmap如何反转坐标

    千次阅读 2019-03-19 19:59:28
    python-sns.heatmap如何反转坐标
  • 今天遇到一个问题,QCustopmplot绘图时候,默认的坐标原点在左下方,但是我现在想把坐标原点设置在左上方,然后Y往下为正,一开始我一直找设置原点的函数一直没找到,最后找到一个函数可以用来反转坐标。...
  • EChart 3.0 设置Y轴反转

    千次阅读 2017-06-05 15:16:12
    EChart 设置Y轴反转,只需要将 yAxis 的 inverse 设为 true 即可:yAxis : [ { inverse:true, type : 'value' } ]效果是这样滴: X 会在上面显示,而 X 的数据会在下面显示,这样通常比较丑,所有我们把 X 和...
  • 然后,利用坐标缩放,缩放y倍数为-1,这样子y就会“缩回去”,从而达到反转y的效果,如下: context.scale(1, -1); 但是这样如果是画文本,就会颠倒,如果是画坐标图、折线图什么的,用这样子的方法,就很...
  • 本文转载自 matplotlib 设置坐标位置/方向 y反向 ...ax.xaxis.set_ticks_position('top') #将x的位置设置在顶部 ax.invert_xaxis() #x反向 对y的操作 ax.yaxis.set_ticks_
  • MATLAB翻转坐标

    千次阅读 2021-04-18 20:39:24
    MATLAB翻转坐标 绘图时候经常有需要从左上角作为原点坐标,这样更加直观,因此用Y翻转就可以按照正常绘制的前提下,看到自上而下变化的坐标 set(gca,'XDir','reverse') % 翻转X set(gca,'YDir','reverse') %...
  • 因为量纲不同我们需要用到次坐标,因为想要表达方式不同我们需要用到翻转坐标,因为就学习了一下 1、次坐标 这里需特别注意,纵坐标的次坐标用twinx(),横坐标的次坐标用twiny() import pandas as pd import ...
  • QCustomPlot坐标反向

    2021-03-20 15:26:35
    下面是效果图 参考代码: QString xFile = param["x_data"].toString(); QString yFile = param["y_data"].toString();... qreal xLow = param["x_range_low"].toDouble();... qreal xHigh = param["x_range_high"]...
  • 三菱PLC控制步进电机

    万次阅读 多人点赞 2019-06-16 10:34:53
    我们学习PLC课程上机实验的时候,往往是用一个发光二极管代替步进电机,通过发光二极管的亮灭代表步进电机正转和反转,实际接线中往往出错,今天就简单介绍一下; 1 1.1 PLC型号的选择 我选择的是三菱FX2N系列PLC,...
  • 图像反转实验代码matlab 澳宝 (A xisymmetricûnified乙ackground-öriented小号chlieren和相关操作) 该程序旨在分析对称对象的面向背景的schlieren数据,并评估相关的变换和核。 逆分析的重点是在统一框架()...
  • 目录 1.1绪言 1.2信号 ...2.反转和平移 3.尺度变换(横坐标展缩) 1.4 阶跃函数和冲激函数 1.阶跃函数和冲激函数 2.冲激函数的广义函数定义 3.冲激函数的导数和积分 4.冲击函数的性质 1.5 ...
  • 该方法采用离平行式集成成像拍摄结构对三维(3D)场景进行拍摄,通过设计合理的拍摄参数,重排图像元,生成无梯形畸变的图像阵列(EIA),直接用于集成成像显示,解决了传统集成成像的深度反转问题,避免了复杂且繁琐的图像...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,066
精华内容 6,026
关键字:

反转轴