gpt4 book ai didi

python - 将 xticks 添加到 matplotlib 中的子图

转载 作者:行者123 更新时间:2023-12-04 13:22:08 25 4
gpt4 key购买 nike

我这样做

def example_plot(ax, somedata, somedata2, title, xlab, ylab, fontsize=12):

ax.plot(somedata, color='b')
ax.plot(somedata2, color='g')
ax.locator_params(nbins=3)
ax.set_xlabel(xlab, fontsize=8)
ax.set_ylabel(ylab, fontsize=10)
ax.set_title(title, fontsize=10)

import matplotlib.pyplot as plt
import numpy as np
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2)
ax1.grid(color='r', linestyle='-', linewidth=1)
ax2.grid(color='r', linestyle='-', linewidth=1)
ax3.grid(color='r', linestyle='-', linewidth=1)
ax4.grid(color='r', linestyle='-', linewidth=1)

example_plot(ax1,cumulative1,survival1, t1, xlbl1, ylbl1)
example_plot(ax2,cumulative2,survival2, t2, xlbl2, ylbl2)
example_plot(ax3,cumulative3,survival3, t3, xlbl3, ylbl3)
example_plot(ax4,cumulative4,survival4, t4, xlbl4, ylbl4)

plt.tight_layout(pad= 0.4, w_pad= 0.5, h_pad = 1.0)

我的问题围绕着将自定义 xticks 应用于每个子图。不管我放多少次,放在哪里

plt.xticks(np.arange(0,100, step = 10))
plt.xlim(0, 100)

他们最终只适用于第 4 个子图。如何为每个子图定义自定义 xticks?

最佳答案

您必须在轴上应用操作,plt 操作最后使用的轴。你应该阅读 the documentation, what kind of manipulations you can perform on the Axes class.对于您的示例,您需要 set_xticksset_xlim:

def example_plot(ax, somedata, somedata2, title, xlab, ylab, fontsize=12):

ax.plot(somedata, color='b')
ax.plot(somedata2, color='g')
ax.locator_params(nbins=3)
ax.set_xlabel(xlab, fontsize=8)
ax.set_ylabel(ylab, fontsize=10)
ax.set_title(title, fontsize=10)

import matplotlib.pyplot as plt
import numpy as np
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2)
ax1.grid(color='r', linestyle='-', linewidth=1)
ax2.grid(color='r', linestyle='-', linewidth=1)
ax3.grid(color='r', linestyle='-', linewidth=1)
ax4.grid(color='r', linestyle='-', linewidth=1)

example_plot(ax1,np.random.rand(10),np.random.rand(20), "A", "x A", "y A")
example_plot(ax2,np.random.rand(30),np.random.rand(40), "B", "x B", "y B")
example_plot(ax3,np.random.rand(10),np.random.rand(40), "C", "x C", "y C")
example_plot(ax4,np.random.rand(20),np.random.rand(50), "D", "x D", "y D")

plt.tight_layout(pad= 0.4, w_pad= 0.5, h_pad = 1.0)

ax1.set_xticks(range(0, 20, 5))
ax2.set_xlim(10, 40)
ax3.set_xlim(0, 50)
ax4.set_xticks(range(20, 50, 5))

plt.show()

示例输出:

enter image description here

关于python - 将 xticks 添加到 matplotlib 中的子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49764349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com