matplotlib 看到带有子图的xticks问题[重复]

kd3sttzy  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(81)

此问题已在此处有答案

Show x-ticks on all subplots and unique y label(4个答案)
Show tick labels when sharing an axis(3个答案)
5天前关闭。
我在查看第一个子图的x轴描述时遇到了问题(我使用了Axes.set_xticks)。请参阅代码示例:

import matplotlib.axes
import matplotlib.pyplot as plt

y_lst=[100,200,150,500]
x_lst=[2,4,8,16]

plt.style.use("bmh") #"ggplot" "seaborn-v0_8-poster"
fig, ax = plt.subplots(2, 1, sharex="all", squeeze=False, figsize=(15, 6))
ax_cur: matplotlib.axes.Axes = ax[0][0]

plt.suptitle("Performance",weight='bold', fontsize=18, ha="center", va="top")
ax_cur.set_title("title", fontsize=14,ha="center", va="top")

ax_cur.plot(x_lst, y_lst, color='green', linestyle="-")
ax_cur.legend()
ax_cur.set_ylabel('RTF [calls/sec]')
ax_cur.set_xticks(x_lst)

plt.grid()
plt.show()

查看输出:

你解决了同样的问题吗?

1qczuiv0

1qczuiv01#

默认情况下,当你使用 sharex 时,重复的记号标签是关闭的,但是你可以用tick_params方法重新打开它们。

import matplotlib.axes
import matplotlib.pyplot as plt

y_lst=[100,200,150,500]
x_lst=[2,4,8,16]

plt.style.use("bmh") #"ggplot" "seaborn-v0_8-poster"
fig, ax = plt.subplots(2, 1, sharex="all", squeeze=False, figsize=(15, 6))
ax_cur: matplotlib.axes.Axes = ax[0][0]

plt.suptitle("Performance",weight='bold', fontsize=18, ha="center", va="top")
ax_cur.set_title("title", fontsize=14,ha="center", va="top")

ax_cur.plot(x_lst, y_lst, color='green', linestyle="-")
ax_cur.legend()
ax_cur.set_ylabel('RTF [calls/sec]')
ax_cur.set_xticks(x_lst)
ax_cur.tick_params('x', labelbottom=True)

plt.grid()
plt.show()

fnatzsnv

fnatzsnv2#

如果你需要在子图中使用不同的x轴描述,你必须为sharex使用不同的参数设置,例如:

fig, ax = plt.subplots(2, 1, sharex="none", squeeze=False, figsize=(15, 6))

参见输出:

相关问题