【问题标题】:Trying to position plots next to each other试图将地块放在一起
【发布时间】:2017-03-25 13:59:54
【问题描述】:

我正在尝试将两个地块并排放置,但我不知道如何正确操作。

这是第一个情节:

x_new = np.linspace(dsa[0], dsa[-1], num=len(dsa)*10)
coefs = poly.polyfit(dsa, Wechsel, 1)
ffit = poly.polyval(x_new, coefs)
plt.grid(True)
plt.xlabel("Druck p in mbar")
plt.ylabel("Minimawechsel N")
plt.plot(x_new, ffit, color="red", linestyle="solid", linewidth=1)
plt.plot(dsa, Wechsel, 'ro', label="Sauerstoff")
plt.legend(loc=1)

这是第二个:

x_new1 = np.linspace(dar[0], dar[-1], num=len(dar)*10)
coefs1 = poly.polyfit(dar, Wechsel, 1)
ffit1 = poly.polyval(x_new1, coefs1)
plt.grid(True)
plt.xlabel("Druck p in mbar")
plt.ylabel("Minimawechsel N")
plt.plot(x_new1, ffit1, color="blue", linestyle="solid", linewidth=1)
plt.plot(dar, Wechsel, 'ro', color='blue', label="Argon")
plt.legend(loc=1)

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    你可以使用plt.subplots:

    f, (ax1, ax2) = plt.subplots(1, 2)
    
    x_new = np.linspace(dsa[0], dsa[-1], num=len(dsa)*10)   
    coefs = poly.polyfit(dsa, Wechsel, 1)
    ffit = poly.polyval(x_new, coefs)
    ax1.grid(True) 
    ax1.set_xlabel("Druck p in mbar")                   
    ax1.set_ylabel("Minimawechsel N")
    ax1.plot(x_new, ffit, color="red", linestyle="solid", linewidth=1)
    ax1.plot(dsa,Wechsel,'ro', label="Sauerstoff" )
    ax1.legend(loc=1)
    

    与ax2类似:

    x_new1 = np.linspace(dar[0], dar[-1], num=len(dar)*10)   
    coefs1 = poly.polyfit(dar, Wechsel, 1)
    ffit1 = poly.polyval(x_new1, coefs1)
    ax2.grid(True)                              
    ax2.set_xlabel("Druck p in mbar")                   
    ax2.set_ylabel("Minimawechsel N")
    ax2.plot(x_new1, ffit1, color="blue", linestyle="solid", linewidth=1)
    ax2.plot(dar,Wechsel, 'ro',color='blue', label="Argon")
    ax2.legend(loc=1)
    

    【讨论】:

    • 感谢您的回答。它起作用了,但是x轴有问题。我做了一个截图:docdro.id/ytauVF0。太紧了,有没有办法让它更宽?
    • @Heißenberg93 有多种方法可以解决这个问题。我要做的是使用ax.set_xticks() (matplotlib.org/api/…) 自定义 x 轴上的刻度数。不过,您需要自己计算刻度(我会使用 ax1.get_xticks() 从现有刻度开始)
    • @JulienSpronc 谢谢你在这里的帖子。我试图在我的代码上使用它,但我得到 AttributeError: 'AxesSubplot' object has no attribute 'plt' 出于某种原因。有什么想法吗?
    • @mkheifetz 我猜你在某个地方输入了ax1.pltax2.pltax1ax2 属于 AxesSubplot 类型,它们没有 plt 属性。
    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 2021-10-26
    • 2011-01-04
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多