【问题标题】:How to set same axis value on multiple subplots?如何在多个子图上设置相同的轴值?
【发布时间】:2020-01-22 11:28:26
【问题描述】:

我有 x 和 y 的数据

我想为每条线创建小型多折线图。我尝试了this page 的代码。我修改了几行以匹配我的代码。这是我的代码:

fig, axs = plt.subplots(4, 5, figsize = (15,15))
ylim = (-100, 55)
k = 0
for i in range(4):
    for j in range(5):
        to_plot = real.loc[real['order_number'] == orderlist[k]]
        axs[i,j].plot(to_plot['event_timestamp'], to_plot['altitude_in_meters'])
        axs[i,j].plot(to_plot['event_timestamp'], to_plot['RASTERVALU'])
        k+=1

orderlist 是一个包含订单号的列表。我想让每个图表对 y 轴有相同的限制,但 ylim = (-100,55) 没有做这项工作,而是我有这个图表具有不同的 y 轴。

如何在每个图表上制作具有相同 y 轴值的小型多个图表?

【问题讨论】:

    标签: python matplotlib linechart


    【解决方案1】:
    ylim = (-100, 55)
    

    它自己什么都不做,而是创建一个名为 ylimtuple。您需要做的是为每个axes 实例调用matplotlib.axes.Axes.set_ylim 方法,并以ylim 作为参数,即

    fig, axs = plt.subplots(4, 5, figsize = (15,15))
    ylim = (-100, 55)
    k = 0
    for i in range(4):
        for j in range(5):
            to_plot = real.loc[real['order_number'] == orderlist[k]]
            axs[i,j].plot(to_plot['event_timestamp'], to_plot['altitude_in_meters'])
            axs[i,j].plot(to_plot['event_timestamp'], to_plot['RASTERVALU'])
            axs[i,j].set_ylim(ylim)
            k+=1
    

    如果您不想绘制绘图之间的 y 刻度标签(因为所有绘图的 y 轴都相同),您也可以这样做

    fig, axs = plt.subplots(4, 5, sharey=True, figsize = (15,15))
    axs[0,0].set_ylim([-100, 55])
    k = 0
    for i in range(4):
        for j in range(5):
            to_plot = real.loc[real['order_number'] == orderlist[k]]
            axs[i,j].plot(to_plot['event_timestamp'], to_plot['altitude_in_meters'])
            axs[i,j].plot(to_plot['event_timestamp'], to_plot['RASTERVALU'])
            k+=1
    

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2015-07-27
      • 2016-12-08
      • 1970-01-01
      相关资源
      最近更新 更多