精华内容
下载资源
问答
  • 双Y轴

    2020-12-26 06:44:05
    <div><p>在下查看R中帮助文档好久,似乎没有发现如何绘制双Y轴的图形。如果可以,作者可否给一示例?谢啦~~~</p><p>该提问来源于开源项目:cosname/recharts</p></div>
  • Matlab绘制双x双y轴/单x双y轴/双x单y轴图,看别的教程是用line语句,但其实用plot和scatter都是可以(自己已经实践)。绘制轴数量、轴位置(XAxisLocation和YAxisLocation)、轴颜色,其实本质和绘制函数曲线的颜色、...

    Matlab绘制双x双y轴/单x双y轴/双x单y轴图,看别的教程是用line语句,但其实用plot和scatter都是可以(自己已经实践)。绘制轴数量、轴位置(XAxisLocationYAxisLocation)、轴颜色,其实本质和绘制函数曲线的颜色、形式(scatter或plot)是一样的,都是利用句柄参数来实现的。

    参考这些不错的例子就能明白<Matlab绘制双x轴-双y轴图形攻略><请问我要画上下两个x轴的图,为什么不能用plot函数><创建包含多个 x 轴和 y 轴的图>

    1.调整plot的坐标轴的显示位置

    一般plot命令生成的图形中,x轴和y轴都是默认分别显示在正下方和左侧的。现在想要,让x轴显示到正上方,y轴还是显示在左侧。

    所以,问题就是如何调整x轴的显示位置?(y轴同理)

    cbd9cffd6c83f92023c8414069f846d0.png

    使用以下语句

    set(gca,'XAxisLocation','top')

    gca就是图片句柄,使用gca命令可访问Axes对象。通过设置XAxisLocation这个参数为top,就可以了

    2.一些通用的设置(参见matlab官方文档)

    (1)更改坐标轴范围

    xlim([0 10])
    ylim([-0.4 0.8])
    
    % 将 x 轴范围最大值设为 0,y 轴范围最小值设为 -1。其他范围则由 MATLAB 选择。
    % 对于自动计算的最小值或最小值范围,分别使用 -inf 或 inf 来表示。
    xlim([-inf 0]) 
    ylim([-1 inf])
    
    % 还原为默认范围
    xlim auto
    ylim auto
    zlim auto

    (2)反转坐标轴方向

    % 使用 gca 命令可访问 Axes 对象。通过设置 Axes 对象的 XDir 和 YDir 属性,可控制x轴和y轴值递增的方向。
    % 这些属性可以设置为 'reverse' 或 'normal'(默认值)。
    stem(1:10)
    ax = gca;
    ax.XDir = 'reverse';
    ax.YDir = 'reverse';
    %% 精简写法 
    set(gca,'XDir','reverse','YDir ','reverse')

    dd70328ab59ab9539fba2c798f9d104c.png

    (3)显示通过原点的轴线

    % 默认情况下,x 轴和 y 轴沿坐标区的外边界显示。
    % 通过设置 Axes 对象的 XAxisLocation 和 YAxisLocation 属性来更改轴线位置,以使轴线在原点 (0,0) 处交叉
    % 将 XAxisLocation 设置为 'top'、'bottom' 或 'origin'。
    % 将 YAxisLocation 设置为 'left'、'right' 或 'origin'。这些属性仅适用于二维视图中的坐标区。
    
    x = linspace(-5,5); y = sin(x); plot(x,y)
    ax = gca; ax.XAxisLocation = 'origin'; ax.YAxisLocation = 'origin';
    box off   %删除坐标区框轮廓。
    
    %% 精简写法 
    set(gca,'XAxisLocation','origin','YAxisLocation','origin')

    ad61c32663080f4d3dbbd246e3df74e2.png

    3.创建包含多个 x 轴和 y 轴的图

    创建过程为:(1)先创建第一套坐标系(第1个x轴、y轴)和使用这个坐标系的函数。同时可根据意愿设定该坐标系颜色尺度等参数(2)再使用axes()命令创建第二套坐标系(实质是基于第一套坐标系位置,指定第2个x轴、y轴的位置,并可选择设定坐标系颜色尺度等参数)(3)在第二套坐标系中,画出使用这个坐标系的函数

    实际上在第(1)步,使用plot等语句绘制函数,就会直接默认创建第一套坐标系,只不过,特别地我们要根据意愿设定坐标系颜色尺度等参数。注意在(3)中绘制使用第二坐标系函数前,最好hold on 一下,保持(1)中绘制的函数,免得把它给刷掉了

    这里我使用例子讲解

    案例1:我自己写论文用到的,要绘制多个分开的scatter、legend,对应2x2y轴

        figure
        
        title_str1 =['T=' num2str(data.T),'K, Power=3.2uW/mm^2']
        title(title_str1,'FontSize',20)
        
        %% 创建第一个坐标系,指定其参数
        xlabel('time/us','fontsize',18);
        ylabel('Responsivity / [uV/(nW/um^2)]','fontsize',18);
        set(gca,'FontSize',16);
        hold on
    
        p(1)=scatter(YBCOData002(:,1),YBCOData002(:,2),'^','r'), hold on; %2mA
            legend_str{1}=['Arpaia et al'];
        ax1 = gca; % current axes
        set(ax1,'XAxisLocation','top','XColor','r','YColor','r','YLim',[-5,35],'YTick',[-5:10:30])
    
        %% 创建第2个坐标系,指定其参数
        ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','bottom','YAxisLocation','right',...
        'Color','none', 'XColor','b','YColor','b','YLim',[-5e5,45e5],'YTick',[-5e5:10e5:38e5]); hold on;
        
        xlabel('time/ms','fontsize',18);
        ylabel('Responsivity / [uV/(nW/um^2)]','fontsize',18);
        set(gca,'FontSize',16);
        hold on
        %% 绘制第2个坐标系中的scatter函数
        p(2)=scatter(cut_timebase,cut_WFdata(21,:),'Parent',ax2,'o','b'), hold on; 
           legend_str{2}=['This work'];
    
    %% 绘制2个分开的legend        
    h1=legend(p(1),legend_str{1});
    set(h1,'edgecolor','white','FontSize',16), hold on
    ah=axes('position',get(gca,'position'),'visible','off'); %% this works to aviod only legend exist 
    h2=legend(ah, p(2),legend_str{2});
    set(h2,'edgecolor','white','FontSize',16), hold on
       
    %      saveas(gcf,[title_str1,'.bmp'])

    案例2:绘制2个plot,对应2x2y轴. 整理自<MATLAB论坛>

    x1=1:10;
    y1=1:10;
    x2=1: 7;
    y2=5:14;
    
    hl1 = line(x1,y1,'Color','r');%第一条曲线的绘制,以默认的主xy轴为坐标
    ax1 = gca;%设置主坐标轴的颜色,用默认的位置,设定颜色
    set(ax1,'XColor','r','YColor','r')
    
    %创建第二套坐标轴,设定颜色及位置
    ax2=axes('Position',get(ax1,'Position'),...
               'XAxisLocation','top',...
               'YAxisLocation','right',...
               'Color','none',...
               'XColor','k','YColor','k');
    hold on; % plot画图之前会清空坐标轴,所以画图之前可以先hold一下
    
    hl2 = line(x2,sin(x2),'Color','k','Parent',ax2);%第二条曲线的绘制,以ax2为坐标系

    案例3:绘制2个line,对应2x2y轴. 整理自<百度>

    注意使用lineplotscatter,本质都是一样的, 区别仅是画出的是线还是散点,输入的x1/y1是函数表达式还是矩阵形式散点数据

    x1 = [0:.1:40];
    y1 = 4.*cos(x1)./(x1+2);
    x2 = [1:.2:20];
    y2 = x2.^2./x2.^3;
    
    hl1 = line(x1,y1,'Color','r');
    ax1 = gca;
    set(ax1,'XColor','r','YColor','r')
    
    ax2 = axes('Position',get(ax1,'Position'), 'XAxisLocation','top','YAxisLocation','right',...
               'Color','none', 'XColor','k','YColor','k');
    
    hl2 = line(x2,y2,'Color','k','Parent',ax2);

    案例4:x轴刻度相同的双轴图. 整理自<百度>

    x1 = [0:.1:40];
    y1 = 4.*cos(x1)./(x1+2);
    x2 = [1:.2:20];
    y2 = x2.^2./x2.^3;
    
    hl1 = line(x1,y1,'Color','r');
    ax1 = gca;
    set(ax1,'XColor','r','YColor','r')
    
    ax2 = axes('Position',get(ax1,'Position'), 'XAxisLocation','top','YAxisLocation','right',...
               'Color','none', 'XColor','k','YColor','k');
    
    hl2 = line(x2,y2,'Color','k','Parent',ax2);
    
    %% 手动指定刻度线位置
    xlimits = get(ax1,'XLim');
    ylimits = get(ax1,'YLim');
    xinc = (xlimits(2)-xlimits(1))/5;
    yinc = (ylimits(2)-ylimits(1))/5;
    set(ax1,'XTick',[xlimits(1):xinc:xlimits(2)], 'YTick',[ylimits(1):yinc:ylimits(2)])

    9ac4c9a6fb4e1c8e5e1e464ba74da2df.png
    展开全文
  • python——绘制双Y轴图像什么是双Y轴图像什么是双Y轴图像,先来展示一下:首先看一下【1】中的示例代码:import matplotlib.pyplot as plt import numpy as np x = np.arange(0., np.e, 0.01) y1 = np.exp(-x) y2 =...

    3f64ccee64376c90787b7b53a61fc8a9.png

    python——绘制双Y轴图像

    什么是双Y轴图像

    什么是双Y轴图像,先来展示一下:

    842e748e465b8428e42d79e09d1cb8cb.png


    首先看一下【1】中的示例代码:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0., np.e, 0.01)
    y1 = np.exp(-x)
    y2 = np.log(x)
    
    fig = plt.figure()
    ax1 = fig.add_subplot(111)
    ax1.plot(x, y1,'r',label="right");
    ax1.legend(loc=1)
    ax1.set_ylabel('Y values for exp(-x)');
    ax2 = ax1.twinx() # this is the important function
    ax2.plot(x, y2, 'g',label = "left")
    ax2.legend(loc=2)
    ax2.set_xlim([0, np.e]);
    ax2.set_ylabel('Y values for ln(x)');
    ax2.set_xlabel('Same X for both exp(-x) and ln(x)');
    plt.show()

    解读一下,3-6行是做数据的生成,legend是是生成标注。这里最重要的就是第13行的 twinx ,这个函数的意思是共享x轴
    接下来就是根据自己的需求,更改这份代码了。

    定制代码

    我需要对一个csv的数据进行读取,并做成双Y轴图像。
    该CSV数据情况大致如下:

    b9508099083d9fd27998e50e3f4166ee.png


    loss和accuracy绘制在一起
    val_loss和val_accuracy绘制在一起
    首先读取csv文件并设置好x和y的值:

    allData=pd.read_csv("history.csv")
    loss=allData["loss"]
    acc=allData["accuracy"]
    # print(loss.shape)
    x=[i for i in range(loss.shape[0])]

    然后开始绘制图像:

    fig = plt.figure()
    ax1 = fig.add_subplot(111)
    ax1.plot(x, loss, 'r', label="loss")
    ax1.legend(loc=1)
    ax1.set_ylabel('loss values')
    ax1.set_xlabel('epochs')
    ax2 = ax1.twinx()  # this is the important function
    ax2.plot(x, acc, 'g', label="accuracy")
    ax2.legend(loc=2)
    ax2.set_ylabel('accuracy values')
    plt.show()

    效果:

    81ca88ef818c7348b2047ab6b5853a71.png


    为了使用方便,我再把他封装成函数:

    def plot_doubleY(csvPath,savedPath,label1,label2):
        '''
        对指定的csv,指定的列名,绘制双Y轴图像
        :param csvPath: 待读取的csv的文件路径,str类型
        :param savedPath: 要保存的png的路径,例如"test.png",str类型
        :param label1: 要读取哪一列的数据的列明,例如"accuracy","loss"等,str类型
        :param label2: 同上
        :return: None
        '''
        allData = pd.read_csv(csvPath)
        loss = allData[label1]
        acc = allData[label2]
        x = [i for i in range(loss.shape[0])]
        fig = plt.figure()
        ax1 = fig.add_subplot(111)
        ax1.plot(x, loss, 'r', label="loss")
        ax1.legend(loc=1)
        ax1.set_ylabel('loss values')
        ax1.set_xlabel('epochs')
        ax2 = ax1.twinx()  # this is the important function
        ax2.plot(x, acc, 'g', label="accuracy")
        ax2.legend(loc=2)
        # ax2.set_xlim([0, np.e])
        ax2.set_ylabel('accuracy values')
        plt.savefig(savedPath)
        # plt.show()

    欢迎有代码需求的童鞋私信或者在下方评论。

    参考资料

    【1】脚本之家——python matplotlib实现双Y轴的实例
    【2】csdn——suplot里面的twinx()函数

    展开全文
  • 微信公众号:数据皮皮侠如果你觉得该公众号对你有帮助,欢迎关注、推广和宣传内容目录:python matplotlib 绘制双Y轴曲线图双X轴的可以理解为共享y轴1.ax1=ax.twiny()2.ax1=plt.twiny()双Y轴的可以理解为共享x轴1....

    微信公众号:数据皮皮侠如果你觉得该公众号对你有帮助,欢迎关注、推广和宣传

    内容目录:python matplotlib 绘制双Y轴曲线图

    双X轴的
    可以理解为共享y轴

    1.ax1=ax.twiny()
    2.ax1=plt.twiny()

    双Y轴的
    可以理解为共享x轴

    1.ax1=ax.twinx()
    2.ax1=plt.twinx()

    自动生成一个例子

     1# Python生成Y双坐标的图 2x = np.arange(0., np.e, 0.01) 3y1 = np.exp(-x) 4y2 = np.log(x) 5fig = plt.figure() 6ax1 = fig.add_subplot(111) 7ax1.plot(x, y1) 8ax1.set_ylabel('Y values for exp(-x)') 9ax1.set_title("Double Y axis")10ax2 = ax1.twinx()  # this is the important function11ax2.plot(x, y2, 'r')12ax2.set_xlim([0, np.e])13ax2.set_ylabel('Y values for ln(x)')14ax2.set_xlabel('Same X for both exp(-x) and ln(x)')15plt.show()

    9afcd8c07a37f1894439ed4436232de5.png

    例子:画了一个双y轴坐标的图表

     1# -*- coding: utf-8 -*- 2 3#调用包 4import pandas as pd  5import numpy as np  6import matplotlib.pyplot as plt 7 8#读取文件 9io=r'E:\工作\专项\白骑士数据验证\白骑士数据汇总表.xlsx'10yinka=pd.read_excel(io,sheet_name='YINKA_sample')11bqs=pd.read_excel(io,sheet_name='BQS_result')12yinka_bqs=pd.merge(yinka,bqs,left_on='no',right_on='no',how='inner')1314#绘图15fig,ax=plt.subplots(1,1,figsize=(20300))16ax.grid()                  #画网格17x=total.index-1                 18#为什么+1,因为对不齐,所以使用时根据情况编写19y=total['var1']20ax.plot(x,y,'k--o',alpha=0.5)   #画折线图21ax.set_xlim([0,16])             22#设置x轴的取值范围          这个可以让x轴与y轴的起点一致23ax.set_xticks(np.arange(0,16))  #设置x轴的刻度范围24ax.set_xticklabels(np.arange(0,16),rotation=3025#设置x轴上的刻度2627ax.set_ylim([0,1800])           #同理y轴数值范围28ax.set_yticks(range(0,1800,300))#设置y轴的刻度范围29ax.set_yticklabels(range(0,1800,300))#设置y轴上的刻度3031ax.legend(loc='upper left')     #设置ax子图的图例(legend)32#新知识点33for a,b in zip(x,y):            #设置注释 zip函数是对应关系34    ax.text(a,b,b,ha='center',va='bottom',fontsize=15)35#重点36ax1=ax.twinx()                  37#这个是能够实现双y轴的重点,共享x轴;还有一种是双x轴的图表换成ax.twiny()38y1=total[['adopt','reject']]39y1.plot.bar(ax=ax1,alpha=0.5)  40#这个是matplotlib中条形图的绘制方法,如果使用seaborn绘制方法使用sns.barplot()函数,需要调整很多细节41#这里只设置了y轴的刻度,x轴的刻度设置了一下偶尔会出现失败,值得注意的是要将数据对齐42ax1.set_ylim([0,1800])43ax1.set_yticks(range(0,1800,300))44ax1.set_yticklabels(range(0,1800,300))45for e,f,w in zip(data_.index,data_[0],data_[1]):46    ax1.text(e-1,f,f,ha='center',va='bottom',fontsize=10,color='b')47    ax1.text(e-1,w,w,ha='center',va='bottom',fontsize=10,color='g')48ax1.legend(loc='best')49plt.show()         #养成习惯这个最好写一下#50#保存图片51plt.savefig('path')  #图表输出到本地

    结果显示:

    28a17aa796e36751628e274e5d7c55bd.png

    下次给出封面的数据和python代码,敬请期待!

    展开全文
  • Matlab绘制双x双y轴/单x双y轴/双x单y轴图,看别的教程是用line语句,但其实用plot和scatter都是可以(自己已经实践)。绘制轴数量、轴位置(XAxisLocation和YAxisLocation)、轴颜色,其实本质和绘制函数曲线的颜色、...

    Matlab绘制双x双y轴/单x双y轴/双x单y轴图,看别的教程是用line语句,但其实用plot和scatter都是可以(自己已经实践)。绘制轴数量、轴位置(XAxisLocationYAxisLocation)、轴颜色,其实本质和绘制函数曲线的颜色、形式(scatter或plot)是一样的,都是利用句柄参数来实现的。

    参考这些不错的例子就能明白<Matlab绘制双x轴-双y轴图形攻略><请问我要画上下两个x轴的图,为什么不能用plot函数><创建包含多个 x 轴和 y 轴的图>

    1.调整plot的坐标轴的显示位置

    一般plot命令生成的图形中,x轴和y轴都是默认分别显示在正下方和左侧的。现在想要,让x轴显示到正上方,y轴还是显示在左侧。

    所以,问题就是如何调整x轴的显示位置?(y轴同理)

    c6e50428bfe5cd9d762a9b3cc7b52ded.png

    使用以下语句

    set(gca,'XAxisLocation','top')

    gca就是图片句柄,使用gca命令可访问Axes对象。通过设置XAxisLocation这个参数为top,就可以了

    2.一些通用的设置(参见matlab官方文档)

    (1)更改坐标轴范围

    xlim([0 10])
    ylim([-0.4 0.8])
    
    % 将 x 轴范围最大值设为 0,y 轴范围最小值设为 -1。其他范围则由 MATLAB 选择。
    % 对于自动计算的最小值或最小值范围,分别使用 -inf 或 inf 来表示。
    xlim([-inf 0]) 
    ylim([-1 inf])
    
    % 还原为默认范围
    xlim auto
    ylim auto
    zlim auto

    (2)反转坐标轴方向

    % 使用 gca 命令可访问 Axes 对象。通过设置 Axes 对象的 XDir 和 YDir 属性,可控制x轴和y轴值递增的方向。
    % 这些属性可以设置为 'reverse' 或 'normal'(默认值)。
    stem(1:10)
    ax = gca;
    ax.XDir = 'reverse';
    ax.YDir = 'reverse';
    %% 精简写法 
    set(gca,'XDir','reverse','YDir ','reverse')

    f267ff05ec0e2891cb25e79e7a0b2b36.png

    (3)显示通过原点的轴线

    % 默认情况下,x 轴和 y 轴沿坐标区的外边界显示。
    % 通过设置 Axes 对象的 XAxisLocation 和 YAxisLocation 属性来更改轴线位置,以使轴线在原点 (0,0) 处交叉
    % 将 XAxisLocation 设置为 'top'、'bottom' 或 'origin'。
    % 将 YAxisLocation 设置为 'left'、'right' 或 'origin'。这些属性仅适用于二维视图中的坐标区。
    
    x = linspace(-5,5); y = sin(x); plot(x,y)
    ax = gca; ax.XAxisLocation = 'origin'; ax.YAxisLocation = 'origin';
    box off   %删除坐标区框轮廓。
    
    %% 精简写法 
    set(gca,'XAxisLocation','origin','YAxisLocation','origin')

    0e8ad59a833fc86123d75cdc51c96976.png

    3.创建包含多个 x 轴和 y 轴的图

    创建过程为:(1)先创建第一套坐标系(第1个x轴、y轴)和使用这个坐标系的函数。同时可根据意愿设定该坐标系颜色尺度等参数(2)再使用axes()命令创建第二套坐标系(实质是基于第一套坐标系位置,指定第2个x轴、y轴的位置,并可选择设定坐标系颜色尺度等参数)(3)在第二套坐标系中,画出使用这个坐标系的函数

    实际上在第(1)步,使用plot等语句绘制函数,就会直接默认创建第一套坐标系,只不过,特别地我们要根据意愿设定坐标系颜色尺度等参数。注意在(3)中绘制使用第二坐标系函数前,最好hold on 一下,保持(1)中绘制的函数,免得把它给刷掉了

    这里我使用例子讲解

    案例1:我自己写论文用到的,要绘制多个分开的scatter、legend,对应2x2y轴

        figure
        
        title_str1 =['T=' num2str(data.T),'K, Power=3.2uW/mm^2']
        title(title_str1,'FontSize',20)
        
        %% 创建第一个坐标系,指定其参数
        xlabel('time/us','fontsize',18);
        ylabel('Responsivity / [uV/(nW/um^2)]','fontsize',18);
        set(gca,'FontSize',16);
        hold on
    
        p(1)=scatter(YBCOData002(:,1),YBCOData002(:,2),'^','r'), hold on; %2mA
            legend_str{1}=['Arpaia et al'];
        ax1 = gca; % current axes
        set(ax1,'XAxisLocation','top','XColor','r','YColor','r','YLim',[-5,35],'YTick',[-5:10:30])
    
        %% 创建第2个坐标系,指定其参数
        ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','bottom','YAxisLocation','right',...
        'Color','none', 'XColor','b','YColor','b','YLim',[-5e5,45e5],'YTick',[-5e5:10e5:38e5]); hold on;
        
        xlabel('time/ms','fontsize',18);
        ylabel('Responsivity / [uV/(nW/um^2)]','fontsize',18);
        set(gca,'FontSize',16);
        hold on
        %% 绘制第2个坐标系中的scatter函数
        p(2)=scatter(cut_timebase,cut_WFdata(21,:),'Parent',ax2,'o','b'), hold on; 
           legend_str{2}=['This work'];
    
    %% 绘制2个分开的legend        
    h1=legend(p(1),legend_str{1});
    set(h1,'edgecolor','white','FontSize',16), hold on
    ah=axes('position',get(gca,'position'),'visible','off'); %% this works to aviod only legend exist 
    h2=legend(ah, p(2),legend_str{2});
    set(h2,'edgecolor','white','FontSize',16), hold on
       
    %      saveas(gcf,[title_str1,'.bmp'])

    案例2:绘制2个plot,对应2x2y轴. 整理自<MATLAB论坛>

    x1=1:10;
    y1=1:10;
    x2=1: 7;
    y2=5:14;
    
    hl1 = line(x1,y1,'Color','r');%第一条曲线的绘制,以默认的主xy轴为坐标
    ax1 = gca;%设置主坐标轴的颜色,用默认的位置,设定颜色
    set(ax1,'XColor','r','YColor','r')
    
    %创建第二套坐标轴,设定颜色及位置
    ax2=axes('Position',get(ax1,'Position'),...
               'XAxisLocation','top',...
               'YAxisLocation','right',...
               'Color','none',...
               'XColor','k','YColor','k');
    hold on; % plot画图之前会清空坐标轴,所以画图之前可以先hold一下
    
    hl2 = line(x2,sin(x2),'Color','k','Parent',ax2);%第二条曲线的绘制,以ax2为坐标系

    案例3:绘制2个line,对应2x2y轴. 整理自<百度>

    注意使用lineplotscatter,本质都是一样的, 区别仅是画出的是线还是散点,输入的x1/y1是函数表达式还是矩阵形式散点数据

    x1 = [0:.1:40];
    y1 = 4.*cos(x1)./(x1+2);
    x2 = [1:.2:20];
    y2 = x2.^2./x2.^3;
    
    hl1 = line(x1,y1,'Color','r');
    ax1 = gca;
    set(ax1,'XColor','r','YColor','r')
    
    ax2 = axes('Position',get(ax1,'Position'), 'XAxisLocation','top','YAxisLocation','right',...
               'Color','none', 'XColor','k','YColor','k');
    
    hl2 = line(x2,y2,'Color','k','Parent',ax2);

    案例4:x轴刻度相同的双轴图. 整理自<百度>

    x1 = [0:.1:40];
    y1 = 4.*cos(x1)./(x1+2);
    x2 = [1:.2:20];
    y2 = x2.^2./x2.^3;
    
    hl1 = line(x1,y1,'Color','r');
    ax1 = gca;
    set(ax1,'XColor','r','YColor','r')
    
    ax2 = axes('Position',get(ax1,'Position'), 'XAxisLocation','top','YAxisLocation','right',...
               'Color','none', 'XColor','k','YColor','k');
    
    hl2 = line(x2,y2,'Color','k','Parent',ax2);
    
    %% 手动指定刻度线位置
    xlimits = get(ax1,'XLim');
    ylimits = get(ax1,'YLim');
    xinc = (xlimits(2)-xlimits(1))/5;
    yinc = (ylimits(2)-ylimits(1))/5;
    set(ax1,'XTick',[xlimits(1):xinc:xlimits(2)], 'YTick',[ylimits(1):yinc:ylimits(2)])

    973140222b19348740573c58bd20f0c2.png
    展开全文
  • 双Y轴图(Double-Y)图形模板主要适用于试验数据中自变量数据相同,但有两个因变量的情况。Origin绘图教程(二):双Y轴柱状图做法详解绘制双Y轴图形的原因是有两个以上的Y列数据,它们共有区间接近的X轴坐标,但Y轴坐标...
  • python绘绘制制双双Y轴轴折折线线图图以以及及单单Y轴轴双双变变量量柱柱状状图图的的实实例例 今天小编就为大家分享一篇python绘制双Y轴折线图以及单Y轴双变量柱状图的实例具有很好的参考价值希望 对大家有所 助...
  • Graphpad是一个非常好用,简单快捷的制图软件,之前我们讲解了如何使用Origin制作双Y轴图。今天我们来聊聊如何使用Graphpad做双Y轴图。软件:GraphPad Prism 8(已添加超链接,直接点击即可下载)下面是我们的数据(我...
  • 今天小编就为大家分享一篇python绘制双Y轴折线图以及单Y轴双变量柱状图的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Matlab绘制双x双y轴/单x双y轴/双x单y轴图,看别的教程是用line语句,但其实用plot和scatter都是可以(自己已经实践)。绘制轴数量、轴位置(XAxisLocation和YAxisLocation)、轴颜色,其实本质和绘制函数曲线的颜色、...
  • 在平时数据处理过程中,常常需要做双Y轴的曲线图。Origin作为一款功能强大的绘图软件,可以轻松地作出漂亮的双y轴曲线图。那么具体的操作是怎样的呢?下面就和大家详细地分享一下利用Origin软件绘制双y轴曲线图的...
  • 原创不易,感谢分享,欢迎转发,请点在看科研小蚂蚁你触手可及的科研小知识在数据整理中,有时候需要绘制双Y轴图,能充分表达数据变化,一个图就行清晰表达两组数据。特别是在写报告和论文的时候,绘制双Y轴的图更是...
  • 介绍首先感谢这位粉丝的提问,之前我们讲解了,如何使用Origin制作制作双Y轴图,这个已经讲过了,没看的同学们可以去公众号菜单栏Origin板块进行查看。那么今天我们来讲的是,如何制作双Y轴堆积条形图,什么意思呢?...
  • ChartControl双Y轴显示

    2017-02-23 11:30:59
    ChartControl双Y轴显示实例源码
  • 能解决问题的简单教程。...这时候双Y轴就能帮我们解决问题。首先,将数据拆分为Data 1和Data 2。先在Data2里面生成图形,如下:然后双击修改Y轴,选择Right Y axis,Gaps and Direction选择能与Data1数...
  • matlab双y轴曲线

    2018-01-20 09:46:09
    MATLAB 双y轴曲线的画法,注释说明了运用的函数,轴曲线的类型、颜色,坐标轴的刻度等
  • 前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权...ax1=plt.twiny()双Y轴的可以理解为共享x轴ax1=ax.twinx() ax1=plt.twinx()自动生成一个例子x = np.arange(0., np.e, 0.01) y1 = np...
  • 最近有很多小伙伴私信我关于双Y轴图的绘制方法? 这里我就直接给出Python-matplotlib绘制方法和R-ggplot2的绘制方法,主要的知识点如下:Matplotlib-Axes.twinx()方法添加副轴ggplot2-sec.axis()绘制双轴Matplotlib-...
  • 软件安装:装机软件必备包关于电脑装机必须的软件,比如windows ...在平时数据处理过程中,常常需要做双Y轴的曲线图。Origin作为一款功能强大的绘图软件,可以轻松地作出漂亮的双y轴曲线图。那么具体的操作是怎...
  • 在平时数据处理过程中,常常需要做双Y轴的曲线图。Origin作为一款功能强大的绘图软件,可以轻松地作出漂亮的双y轴曲线图。那么具体的操作是怎样的呢?下面就和大家详细地分享一下利用Origin软件绘制双y轴曲线图的过程...
  • ax1=plt.twiny()双Y轴的可以理解为共享x轴ax1=ax.twinx() ax1=plt.twinx()自动生成一个例子x = np.arange(0., np.e, 0.01) y1 = np.exp(-x) y2 = np.log(x) fig = plt.figure() ax1 = fig.add_subplot(111)...
  • Python matplotlib 绘制双Y轴曲线图的示例代码Matplotlib简介Matplotlib是非常强大的python画图工具Matplotlib可以画图线图、散点图、等高线图、条形图、柱形图、3D图形、图形动画等。Matplotlib安装pip3 install ...
  • 若最大最小值固定,直接初始化设置option的yAxis的min和max属性值即可;假设已知固定最大最小值...情景二若最大最小值不固定,而数据类型一致,即:双Y轴对应数据的数量级一致。添加一个JS处理函数即可。function se...
  • python matplotlib实现双Y轴的实例如下所示:import matplotlib.pyplot as pltimport numpy as npx = np.arange(0., np.e, 0.01)y1 = np.exp(-x)y2 = np.log(x)fig = plt.figure()ax1 = fig.add_subplot(111)ax1....
  • 来源丨Paper绘图首先感谢这位粉丝的提问,之前我们讲解了,如何使用Origin制作制作双Y轴图,这个已经讲过了,没看的同学们可以去公众号菜单栏Origin板块进行查看。那么今天我们来讲的是,如何制作双Y轴堆积条形图,...
  • 双y轴图像具有单y轴图像没有的对比效果,在MATLAB中有plotyy函数可以实现,Python的实现方式没有MATLAB那样方便,不过实现效果却也不见得差。以往我常用的绘图命令是import matplotlib.pylab as plt #导入绘图包plt....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,087
精华内容 434
关键字:

双y轴