精华内容
下载资源
问答
  • python matplotlib主副坐标

    千次阅读 2018-11-28 15:00:15
    在excel画图中经常会使用...matplotlib画图针对这种场景需解决方如下: import numpy as np from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus...

    在excel画图中经常会使用到两个数据放在一个图上,共用x轴两个y轴分别位于两侧。
    matplotlib画图针对这种场景需解决方如下:
    在这里插入图片描述

    import numpy as np
    from matplotlib import pyplot as plt
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    x=np.arange(0.1,10,0.01)
    data1=np.exp(x)
    data2=np.log(x)
    fig,ax1=plt.subplots() #subplots一定要带s
    ax1.plot(x,data1,c='r')
    ax1.set_ylabel('EXP')
    ax2=ax1.twinx() #twinx将ax1的X轴共用与ax2,这步很重要
    ax2.plot(x,data2,c='g')
    ax2.set_ylabel('Log')
    plt.show()
    
    展开全文
  • 设置最小的刻度,比如刻度为3,而不去设置坐标轴的范围,也是有时候的一些需求。 fig, ax = plt.subplots(1, 1) ax.plot(range(12), range(12)) ax.xaxis.set_major_locator(plt.MultipleLocator(3)) # #把x轴的...

    设置最小的刻度,比如刻度为3,而不去设置坐标轴的范围,也是有时候的一些需求。
     

    
    fig, ax = plt.subplots(1, 1)
    ax.plot(range(12), range(12))
    ax.xaxis.set_major_locator(plt.MultipleLocator(3)) # #把x轴的主刻度设置为3的倍数
    ax.yaxis.set_major_locator(plt.MultipleLocator(4)) # #把y轴的主刻度设置为4的倍数

     下面的按需取用,
     

    ax.xaxis.set_major_formatter(plt.FormatStrFormatter('%5.2f')) # 设置 刻度标签 显示格式 不是坐标轴标签
    plt.xlim(-0.5,11) #把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白
    plt.ylim(-5,110)  #把y轴的刻度范围设置为-5到110,同理,-5不会标出来,但是能看到一点空白
    ax.set_xscale('linear')  # log # 设置坐标轴 为线性还是 对数等。

    展开全文
  • matplotlib命令与格式:tick坐标主副刻度设置

    万次阅读 多人点赞 2017-12-06 23:52:26
    1.刻度定位器与格式(Tick Locator) Tick locating 与 Tick formatting 可...Matplotlib 中的 ticker 模块用于支持坐标轴刻度的修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(f

    1.刻度定位器与格式(Tick Locator)

    Tick locating 与 Tick formatting 可参考官方文档:http://matplotlib.org/api/ticker_api.html

    2.获取坐标轴刻度对象

    Matplotlib 中的 ticker 模块用于支持坐标轴刻度的修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(formatter)等。
    ax.xaxis.get_major_ticks()
    ax.xaxis.get_minor_ticks()
    ax.xaxis.get_major_locator()
    ax.xaxis.get_minor_locator()
    ax.xaxis.get_major_formatter()
    ax.xaxis.get_minor_formatter()

    3.设置主副刻度对象属性

    (1)设置主副刻度格式
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.ticker import MultipleLocator, FormatStrFormatter

    t = np.arange(0.0, 100.0, 1)
    s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01)
    ax = plt.subplot(111) #注意:一般都在ax中设置,不再plot中设置
    plt.plot(t,s,'--r*')

    #修改主刻度
    xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数
    xmajorFormatter = FormatStrFormatter('%5.1f') #设置x轴标签文本的格式
    ymajorLocator = MultipleLocator(0.5) #将y轴主刻度标签设置为0.5的倍数
    ymajorFormatter = FormatStrFormatter('%1.1f') #设置y轴标签文本的格式
    #设置主刻度标签的位置,标签文本的格式
    ax.xaxis.set_major_locator(xmajorLocator)
    ax.xaxis.set_major_formatter(xmajorFormatter)
    ax.yaxis.set_major_locator(ymajorLocator)
    ax.yaxis.set_major_formatter(ymajorFormatter)

    #修改次刻度
    xminorLocator = MultipleLocator(5) #将x轴次刻度标签设置为5的倍数
    yminorLocator = MultipleLocator(0.1) #将此y轴次刻度标签设置为0.1的倍数
    #设置次刻度标签的位置,没有标签文本格式
    ax.xaxis.set_minor_locator(xminorLocator)
    ax.yaxis.set_minor_locator(yminorLocator)

    #打开网格
    ax.xaxis.grid(True, which='major') #x坐标轴的网格使用主刻度
    ax.yaxis.grid(True, which='minor') #y坐标轴的网格使用次刻度
    plt.show()


    (2)删除坐标轴的刻度显示
    ax.yaxis.set_major_locator(plt.NullLocator()) 
    ax.xaxis.set_major_formatter(plt.NullFormatter()) 


    展开全文
  • 日期时间做X轴,设定主副刻度 当X轴为日期时间时,annotate标注功能X轴坐标获取问题,即将x轴所在点的日期时间通过mdates.date2num()转为数字即可。关键代码如下: ax1.annotate("annotate msg ", xy=(mdates.date2...

    1.解决的问题

    • 日期时间做X轴,设定主副刻度
    • 当X轴为日期时间时,annotate标注功能X轴坐标获取问题,即将x轴所在点的日期时间通过mdates.date2num()转为数字即可。关键代码如下:
    ax1.annotate("annotate msg ", xy=(mdates.date2num(x[1]), sales[1]), xycoords='data', color='red')
    

    2.演示代码

    主体代码来源:https://blog.csdn.net/helunqu2017/article/details/78736686,略改

    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    from datetime import datetime
    import matplotlib as mpl
    import matplotlib.dates as mdates
    # 销售数据
    dates = [20171101, 20171102, 20171103, 20171104]
    sales = [102.1, 100.6, 849, 682]
    # 将dates改成日期格式
    x = [datetime.strptime(str(d), '%Y%m%d').date() for d in dates]
    # figure布局
    fig = plt.figure(figsize=(8, 4))
    ax1 = fig.add_subplot(1, 1, 1)
    # 绘图
    ax1.plot(x, sales, ls='--', lw=3, color='b', marker='o', ms=6, mec='r', mew=2, mfc='w', label='业绩趋势走向')
    
    # 标注
    ax1.annotate("annotate msg ", xy=(mdates.date2num(x[1]), sales[1]), xycoords='data', color='red')
    
    plt.gcf().autofmt_xdate()  # 自动旋转日期标记
    
    # 设置x轴主刻度格式
    alldays = mdates.DayLocator()  # 主刻度为每天
    ax1.xaxis.set_major_locator(alldays)  # 设置主刻度
    ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y%m%d'))
    # 设置副刻度格式
    hoursLoc = mpl.dates.HourLocator(interval=6)  # 为6小时为1副刻度
    ax1.xaxis.set_minor_locator(hoursLoc)
    ax1.xaxis.set_minor_formatter(mdates.DateFormatter('%H'))
    # 参数pad用于设置刻度线与标签间的距离
    ax1.tick_params(pad=10)
    
    # 显示图像
    plt.show()
    
    展开全文
  • 主要介绍了matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • matplotlib作图时设置了x轴主副刻度,主刻度是年月日,副刻度是时分秒,想把副坐标标签旋转,怎么实现呢? 不旋转的话,坐标值会重叠,用plt.xticks(rotation=90)只能旋转主刻度坐标 ![图片说明]...
  • matplotlib命令与格式:tick坐标轴日期格式(设置日期主副刻度) 原创开码牛 最后发布于2017-12-07 00:02:23 阅读数 17315 收藏 展开 1.横坐标设置时间格式 import matplotlib.pyplot as plt import matplotlib.dates ...
  • 1.刻度定位器与格式(Tick Locator) Tick locating 与 Tick formatting ...Matplotlib 中的 ticker 模块用于支持坐标轴刻度的修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(for...
  • 1.横坐标设置时间格式import matplotlib.pyplot as pltimport matplotlib.dates as mdates# 配置横坐标为日期格式plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))plt.gca().xaxis.set_major...
  • 1.横坐标设置时间格式import matplotlib.pyplot as pltimport matplotlib.dates as mdates# 配置横坐标为日期格式plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))plt.gca().xaxis.set_major...
  • 共用X轴,主副坐标

    2019-04-28 14:09:20
    from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False x=np.arange(0.1,10,0.01) data1=np.exp(x) data2=np.log(x) f...
  • 其实就是在设置刻度的基础上,在添加一个列表,来显示...import matplotlib.pyplot as plt import numpy as np # 数据 x = np.linspace(-10, 10, 100) y = x**2 # 绘图 plt.plot(x, y) # 设置轴的刻度 plt.xtic...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

matplotlib主副坐标