精华内容
下载资源
问答
  • 主要介绍了python_matplotlib改变横坐标纵坐标上的刻度(ticks)方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python_matplotlib改变横坐标纵坐标上的刻度(ticks)

    万次阅读 多人点赞 2018-09-10 20:00:24
    用matplotlib画二维图像时,默认情况下的横坐标纵坐标显示的值有时达不到自己的需求,需要借助xticks()和yticks()分别对横坐标x-axis和纵坐标y-axis进行设置。 import numpy as np import matplotlib.pyplot as ...

    用matplotlib画二维图像时,默认情况下的横坐标和纵坐标显示的值有时达不到自己的需求,需要借助xticks()和yticks()分别对横坐标x-axis和纵坐标y-axis进行设置。

    import numpy as np
    import matplotlib.pyplot as plt
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.show()

     x坐标和y坐标都表示1到12的整数,不进行坐标设置时,执行效果为:

     此时的x轴和y轴都是只显示偶数,其它的奇数未显示,这样在展示实验效果或放入文章中都会影响其可读性。

    为了设置坐标轴的值,增加其可读性,有多种方法。这里介绍的是matplotlib的函数xticks()和yticks()。

    参考文档:xticks()函数介绍      yticks()函数介绍

    xticks()中有3个参数:

    xticks(locs, [labels], **kwargs)  # Set locations and labels
    

     locs参数为数组参数(array_like, optional),表示x-axis的刻度线显示标注的地方,即ticks放置的地方,上述例子中,如果希望显示1到12所有的整数,就可以将locs参数设置为range(1,13,1),第二个参数也为数组参数(array_like, optional),可以不添加该参数,表示在locs数组表示的位置添加的标签,labels不赋值,在这些位置添加的数值即为locs数组中的数。如下图

    import numpy as np
    import matplotlib.pyplot as plt
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.xticks(x)
    plt.show()

    xticks()函数中,locs参数为数组x,即1到12所有的整数, 即画出的图像会在这12个位置画出ticks,即上图中的刻度线。

    当赋予labels的值为空时,则在locs决定的位置上虽然会画出ticks,但不会显示任何值。

    import numpy as np
    import matplotlib.pyplot as plt
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.xticks(x,())
    plt.show()

    其效果为:

    该例子中,会明显看到locs和labels的关系,locs表示位置,labels决定这些位置上的标签,labels的默认值为和locs相同。

    所以,对于labels参数,我们可以赋予其任意其它的值,如人名,月份等等。

    import numpy as np
    import matplotlib.pyplot as plt
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.xticks(x, ('Tom','Dick','Harry','Sally','Sue','Lily','Ava','Isla','Rose','Jack','Leo','Charlie'))
    plt.show()

     在每个标签会依次显示labels中的人名:

    还可以显示月份:

    import numpy as np
    import matplotlib.pyplot as plt
    import calendar
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.xticks(x, calendar.month_name[1:13],color='blue',rotation=60)
    plt.show()

    显示效果为:

    这里添加了 calendar 模块,用于显示月份的名称。calendar.month_name[1:13]即1月份到12月份每个月份的名称的数组。后面的参数color='blue'表示将标签颜色置为蓝色,rotation表示标签逆时针旋转60度。

    通过上个示例,可看出第3个参数关键字参数**kwargs用于控制labels,具体可通过Text属性中的定义,添加到该参数中,关于其定义可参考在 Text 查询。

    另外,通过第1个参数locs可以看出,xticks()函数还可以用来设置使x轴上ticks隐藏,即将空数组赋予它,则没有tick会显示在x轴上,此处参考:x轴数值隐藏

    import numpy as np
    import matplotlib.pyplot as plt
    import calendar
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.xticks([])
    plt.show()

    可看出x轴上没有tick显示:

    同理,对于yticks()函数定义和xticks()函数定义完全相同。对于第一个例子,如果希望在y轴上的刻度线也显示1到12所有的整数,则将lens(1,13,1)赋予yticks()的locs参数即可:

    import numpy as np
    import matplotlib.pyplot as plt
    import calendar
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.xticks(x)
    plt.yticks(y)
    plt.show()

     其效果为:

     综上,可以设计一个x轴为月份,y为星期的图像:

    import numpy as np
    import matplotlib.pyplot as plt
    import calendar
    from datetime import *
    x = range(1,13,1)
    y = range(1,13,1)
    plt.plot(x,y)
    plt.xticks(x, calendar.month_name[1:13],color='blue',rotation=60)
    today = datetime(2018, 9, 10)
    a=[]
    for i in range(12):
        a.append(calendar.day_name[today.weekday()+(i%7)])
    plt.yticks(y,a,color='red')
    plt.show()

     

    对应一月份选择星期一,二月份选择星期二,往后依次类推,直至将12个月安排完。 

    展开全文
  • 成功解决matplotlib绘图的时候,自定义横坐标纵坐标刻度数值(调整坐标轴刻度间隔) 目录 解决问题 解决方法 相关文章 成功解决matplotlib绘图的时候,自定义横坐标纵坐标刻度数值(调整坐标轴...

    成功解决matplotlib绘图的时候,自定义横坐标和纵坐标刻度数值(调整坐标轴刻度间隔)

     

     

     

    目录

    解决问题

    解决方法


     

     

     

     

    相关文章
    成功解决matplotlib绘图的时候,自定义横坐标和纵坐标刻度数值(调整坐标轴刻度间隔)
    成功解决 利用plt.plot绘图时,横坐标出现浮点小数而不是整数的情况(坐标轴刻度)

    解决问题

    matplotlib绘图的时候,自定义横坐标和纵坐标刻度数值(调整坐标轴刻度间隔)

    展开全文
  • 横坐标分类纵坐标数值画折线图

    千次阅读 2020-06-11 23:24:21
    横坐标是分类/日期变量,纵坐标是数值变量,画折线图 例1: > datedata date value class 1 2020-01-01 0.39121506 a 2 2020-01-02 0.80494396 a 3 2020-01-03 0.58351189 a 4 2020-01-04 0.05941928 a 5 2020...

    横坐标是分类/日期变量,纵坐标是数值变量,画折线图
    例1:

    > datedata
             date      value class
    1  2020-01-01 0.39121506     a
    2  2020-01-02 0.80494396     a
    3  2020-01-03 0.58351189     a
    4  2020-01-04 0.05941928     a
    5  2020-01-05 0.07531910     a
    6  2020-01-06 0.80780271     a
    7  2020-01-07 0.06380257     a
    8  2020-01-08 0.92145849     a
    9  2020-01-09 0.73850064     a
    10 2020-01-10 0.35237536     a
    11 2020-01-11 0.92347969     a
    12 2020-01-12 0.79455759     a
    13 2020-01-13 0.75459159     a
    14 2020-01-14 0.87136337     a
    15 2020-01-15 0.47105110     a
    16 2020-01-16 0.16413874     a
    17 2020-01-17 0.05736173     a
    18 2020-01-18 0.44688925     a
    19 2020-01-19 0.42349645     a
    20 2020-01-20 0.97528244     a
    21 2020-01-21 0.62083745     a
    22 2020-01-01 0.46938583     b
    23 2020-01-02 0.82710660     b
    24 2020-01-03 0.71093411     b
    25 2020-01-04 0.73021773     b
    26 2020-01-05 0.79499679     b
    27 2020-01-06 0.65321258     b
    28 2020-01-07 0.40133712     b
    29 2020-01-08 0.96178454     b
    30 2020-01-09 0.04142646     b
    31 2020-01-10 1.07853129     b
    32 2020-01-11 0.12897003     b
    33 2020-01-12 0.85772176     b
    34 2020-01-13 0.12634062     b
    35 2020-01-14 0.96898946     b
    36 2020-01-15 0.42971008     b
    37 2020-01-16 0.11953182     b
    38 2020-01-17 0.02485203     b
    39 2020-01-18 0.33823720     b
    40 2020-01-19 0.18782383     b
    41 2020-01-20 0.46701040     b
    42 2020-01-21 0.79352727     b
    43 2020-01-01 0.25582165     c
    44 2020-01-02 0.36760256     c
    45 2020-01-03 0.16433186     c
    46 2020-01-04 0.56795373     c
    47 2020-01-05 0.86550311     c
    48 2020-01-06 0.46132921     c
    49 2020-01-07 0.83051082     c
    50 2020-01-08 0.17638435     c
    51 2020-01-09 0.84784771     c
    52 2020-01-10 0.26215971     c
    53 2020-01-11 0.87021982     c
    54 2020-01-12 0.73355191     c
    55 2020-01-13 0.05142295     c
    56 2020-01-14 0.68029021     c
    57 2020-01-15 0.34619824     c
    58 2020-01-16 0.87034349     c
    59 2020-01-17 0.66815194     c
    60 2020-01-18 0.04437336     c
    61 2020-01-19 0.41315784     c
    62 2020-01-20 0.56587129     c
    63 2020-01-21 0.27803644     c
    > library(ggplot2)
    > library(gridExtra)
    > p1 <- ggplot(datedata)+geom_line(aes(x=date,y=value,group=class,color=class))+geom_point(aes(x=date,y=value,group=class,color=class))+scale_x_date(date_breaks = "1 day")+theme_light()+theme(axis.text.x = element_text(angle = 90, hjust = 1))
    > p2 <- ggplot(datedata)+geom_line(aes(x=date,y=value,group=class,color=class))+geom_point(aes(x=date,y=value,group=class,color=class))+scale_x_date(date_breaks = "1 day")+theme_light()+theme(axis.text.x = element_text(angle = 90, hjust = 1))+facet_wrap(~class,ncol = 3)
    > grid.arrange(p1,p2,ncol=1)

    例2:

    > df
      cond yval
    1    A  2.0
    2    B  2.5
    3    C  1.6
    > p3 <- ggplot(df)+geom_line(aes(x=cond,y=yval,group=1))
    > p4 <- ggplot(df)+geom_line(aes(x=cond,y=yval,group=1),color="blue")+geom_point(aes(x=cond,y=yval),color="red",size=3)
    > grid.arrange(p3,p4,ncol=2)

     

    展开全文
  • python_matplotlib改改变变横横坐坐标标和和纵纵坐坐标标上上的的刻刻度度(ticks)方方式式 这篇文章主要介绍了python_matplotlib改变横坐标纵坐标上的刻度(ticks)方式具有很好的参考价值希望对大 家有所帮 一起...
  • 使用MATLAB画上下两个横坐标或者左右两个纵坐标上下两个横坐标同一条曲线对应两个坐标轴两条曲线分别对应两个坐标轴左右连个纵坐标 上下两个横坐标 有时候画图会使用不同单位画在同一个曲线图中,希望两个单位分布在...

    上下两个横坐标

    有时候画图会使用不同单位画在同一个曲线图中,希望两个单位分布在上下两个横坐标中。示例使用MATLAB 2016B

    同一条曲线对应两个坐标轴

    使用位置设置让两个坐标系叠在一起:
    position = [0.15 0.2 0.75 0.6];
    set(gca,‘xaxislocation’,‘top’,‘yaxislocation’,‘left’,‘position’,position);
    sin\theta

    theta_degree = 0:360;
    theta_rad = theta_degree/180*pi;
    position = [0.15 0.2 0.75 0.6];
    plot(theta_degree,sin(theta_rad),'Linewidth',4);   %这里画的被后面的覆盖了
    set(gca,'xaxislocation','top','yaxislocation','left','position',position);
    set(gca,'XTick',0:30:360);           %设置x轴刻度
    xlabel('Degree');
    set(gca,'Linewidth',2,'Fontsize',20,'box','on');
    axes;
    plot(theta_rad,sin(theta_rad),'Linewidth',4);hold on
    xlabel('Rad');
    set(gca,'xaxislocation','bottom','yaxislocation','right','position',position);
    set(gca,'yticklabel',[]);
    h = legend('sin\theta');
    set(h,'box','off');			%不画方框
    set(gca,'Linewidth',2,'Fontsize',20,'box','on');
    
    

    两条曲线分别对应两个坐标轴

    注意使用’color’,'none’将坐标系背景设置为透明,使得上一个坐标系能够显示.同时还要注意,坐标系的框要去掉,‘box’,‘off’,不然坐标刻度会叠在一起。
    sin\theta sin2\theta

    theta_degree = 0:360;
    theta_rad = theta_degree/180*pi;
    position = [0.15 0.2 0.75 0.6];
    plot(theta_degree,sin(theta_rad),'Linewidth',4);
    set(gca,'xaxislocation','top','yaxislocation','left','position',position);
    set(gca,'XTick',0:50:360);           %设置x轴刻度
    xlabel('Degree');
    set(gca,'Linewidth',2,'Fontsize',20,'box','off');
    axes;
    plot(theta_rad,sin(theta_rad*2),'Linewidth',4,'color','k');
    xlabel('Rad');
    set(gca,'xaxislocation','bottom','yaxislocation','right','color','none','position',position);
    set(gca,'yticklabel',[]);
    set(gca,'Linewidth',2,'Fontsize',20,'box','off');
    

    但是这样两条曲线就不能legend到一起了,因为变成了两个坐标系,只是通过设置位置重合在一起。解决办法就是像上一个一样,将第一个坐标系覆盖,color 不要设置为透明,把所有图都画到第二个坐标系。如下:
    在这里插入图片描述

    theta_degree = 0:360;
    theta_rad = theta_degree/180*pi;
    position = [0.15 0.2 0.75 0.6];
    plot(theta_degree,sin(theta_rad),'Linewidth',4);
    set(gca,'xaxislocation','top','yaxislocation','left','position',position);
    set(gca,'XTick',0:50:360);           %设置x轴刻度
    xlabel('Degree');
    set(gca,'Linewidth',2,'Fontsize',20,'box','on');
    axes;
    plot(theta_rad,sin(theta_rad),'Linewidth',4);hold on
    plot(theta_rad,sin(theta_rad*2),'Linewidth',4,'color','k');
    xlabel('Rad');
    set(gca,'xaxislocation','bottom','yaxislocation','right','position',position);
    set(gca,'yticklabel',[]);
    h = legend('sin\theta','sin2\theta');
    set(h,'box','off');
    set(gca,'Linewidth',2,'Fontsize',20,'box','on');
    

    左右两个纵坐标

    使用上述方法同样可以实现两个纵坐标画到一个图,但是MATLAB提供了另一个方便的函数来实现:yyaxis left和yyaxis right (之前的MATLAB版本里面是通过yyplot函数实现)。

    theta_degree = 0:360;
    theta_rad = theta_degree/180*pi;
    position = [0.15 0.2 0.75 0.6];
    yyaxis left
    plot(theta_degree,sin(theta_rad),'Linewidth',4);hold on
    
    yyaxis right
    plot(theta_degree,sin(theta_rad*2),'Linewidth',4);
    xlabel('Degree');
    set(gca,'XTick',0:50:360);           %设置x轴刻度
    h = legend('sin\theta','sin2\theta');
    set(h,'box','off');
    set(gca,'Linewidth',2,'Fontsize',20,'box','on');
    

    在这里插入图片描述

    展开全文
  • Addsecondaxis 是一个简单的函数,它在现有的坐标轴上添加第二个横坐标纵坐标阴谋。 与 plotxx 或 plotyy 不同,它不绘制新曲线。 如果希望看到相同的曲线作为 2 个不同的横坐标纵坐标的函数,则 Addsecond 轴...
  • python实现可暂停的动态曲线绘制,纵坐标固定,横坐标从上一个点到当前点,同时保存数据到文件中
  • echart横坐标纵坐标)的值竖着显示的实现方法 xAxis : [  {  type : 'category',  data : data[1],  axisLabel:{  interval: 0,  formatter: function (value) {  //x轴的文字改为竖版显示  var str = ...
  • 成功解决matplotlib绘图的时候横坐标纵坐标文本显示不全/显示一半/显示不完整的问题 目录 解决问题 解决思路 解决方法 解决问题 成功解决matplotlib绘图的时候横坐标纵坐标文本显示不...
  • show: true, //这行代码控制着坐标轴y轴的文字是否显示 textStyle: { color: '#333333FF', //y轴上的字体颜色 fontSize: '16' // y轴字体大小 } }, // 控制网格线是否显示 splitLine: { show: true, // ...
  • import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [1, 4, 9, 6] labels = ['Frogs', 'Hogs', 'Bogs', 'Slogs'] plt.plot(x, y) # You can specify a rotation for the tick labels in degrees or with ...
  • matlab 不显示横坐标,只显示纵坐标

    万次阅读 2012-01-09 20:14:41
    matlab中无法只显示纵坐标或只显示横坐标。 但我可以教一个办法 set(gca,'XColor','white') set(gca,'Color','white') box off 那有没有只显示坐标 不显示坐标上的数字的方法啊? 试一下这个 set(gca,'XColor',...
  • getCell(x,y) 第y行的第x列
  • //坐标轴移动50mm position : 'right' , // min:0, // max:600, axisLabel : { formatter : function ( value , index ) { // var lg_warnflag= [','异常...
  • 可以看到Y轴坐标已经乱掉了。 出现这种情况的主要原因在于:Y轴的值不是int或float这种数据,而是 string这种类型,导致转换成数据的时候出错。 严重的时候,如果数据比较大的时候,会出现以下的情况: 所以...
  • 目前见过的能简单把plt.xsticks 中参数设定写的比较明白的博客  先转下来,之后再细看一下,进行一下加工 (https://blog.csdn.net/Poul_henry/article/details/82590392) ...
  • 重点控制yAxis的position:'right'
  • MATLAB不仅是数学计算的好工具,在绘图上也有很大的作用,绘制双纵坐标图的命令是plotyy,如何设置双坐标图的图例,线条的粗细,以及在读取数据时可能会遇到什么错误,在这里以实际例子给出答案!
  • x = 1:5;y1 = [1273047;1273047;1957339;2637328;4433434];y2 = [12730;127347;195739;263728;443334];plot(x,y1,x,y2);set(gca,'xtick',[1:5],'xticklabel',{'c1' 'c2' 'c3' 'c4','c5'});...ylabel('...
  • 求例子啊 急求~VS2010 C# WPF画谱图,横坐标波长,纵坐标光谱强度,最后画出来是一个峰一个峰的那种,要怎么实现啊,感谢感谢,求大神,求例子
  • ###-----------设置横坐标的值。 x_num = len(result['avg'].values) tmp = (end_ite-start_ite - igore)/(x_num*1.0) x = [] for i in range(x_num): x.append(i*tmp + start_ite + igore) #print(x) print('total...
  • 步骤 (1)在figure中点击编辑...坐标区属性(axis properties),会有一个弹框显示 (2)选择“标尺”,下拉选项找到XScale、YScale (3)该X轴的单位就改XScale,把linear改为log。改Y轴的单位,就改YScale ...
  • 编写一个点类,将纵坐标作为其私有数据成员,定义带两个参数(纵坐标)的构造函数,对纵坐标进行初始化,编写程序求两点之间的距离,要求用友元函数(考虑一下不用友元函数如何解决)。 代码1: #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,883
精华内容 27,153
关键字:

哪个是横坐标哪个是纵坐标