sách gpt4 ai đã đi

python - plt.subplot 轴共享不起作用

In lại 作者:行者123 更新时间:2023-12-03 16:14:59 26 4
mua khóa gpt4 Nike

我正在尝试绘制一些子图,但似乎无法共享轴。我看过其他代码,他们似乎完全按照我的尝试做,但我的似乎没有做任何事情。

我只是想在左侧的四个子图中共享各自的轴,同时将最右侧的子图分开。

nhập numpy dưới dạng np
nhập matplotlib.pyplot dưới dạng plt

# set the data
x_data = np.linspace(0, 10)
y_data_1 = np.sin(x_data)
y_data_2 = np.cos(x_data)
y_data_3 = [i / 2 for i in y_data_1]
y_data_4 = [j / 2 for j in y_data_2]

# make the plot
ax1 = plt.subplot(2,3,1)
plt.plot(x_data, y_data_1)

ax2 = plt.subplot(2,3,2, sharey=ax1)
plt.plot(x_data, y_data_1)
plt.plot(x_data, y_data_2)

ax3 = plt.subplot(1,3,3)
plt.plot(x_data)

ax4 = plt.subplot(2,3,4, sharex=ax1)
plt.plot(x_data, y_data_1)
plt.plot(x_data, y_data_2)
plt.plot(x_data, y_data_3)

ax5 = plt.subplot(2,3,5, sharex=ax2, sharey=ax4)
plt.plot(x_data, y_data_1)
plt.plot(x_data, y_data_2)
plt.plot(x_data, y_data_3)
plt.plot(x_data, y_data_4)

plt.hiển thị()

nhập mô tả hình ảnh ở đây

如您所见,尽管在 plt.subplot 命令中添加了 sharex 和 sharey 参数,但返回的图显示了所有唯一的子图。

我确定我犯了一个小错误,但我过去曾尝试过,并记得我遇到了同样的问题!任何帮助表示赞赏,以及替代方法的建议。甚至网站也包含做同一件事的各种方法,这有点令人困惑。

1 Câu trả lời

您快到了。您正在正确共享轴,但需要使某些子图的轴不可见(按照 Shared Axis Demo 的指示):

plt.setp(ax1.get_xticklabels(), visible=False)

在您的代码中,这可能如下所示:
# make the plot
ax1 = plt.subplot(2, 3, 1)
plt.plot(x_data, y_data_1)
plt.setp(ax1.get_xticklabels(), visible=False)

ax2 = plt.subplot(2, 3, 2, sharey=ax1)
plt.plot(x_data, y_data_1)
plt.plot(x_data, y_data_2)
plt.setp(ax2.get_xticklabels(), visible=False)
plt.setp(ax2.get_yticklabels(), visible=False)

ax3 = plt.subplot(1, 3, 3)
plt.plot(x_data)

ax4 = plt.subplot(2, 3, 4, sharex=ax1)
plt.plot(x_data, y_data_1)
plt.plot(x_data, y_data_2)
plt.plot(x_data, y_data_3)

ax5 = plt.subplot(2, 3, 5, sharex=ax2, sharey=ax4)
plt.plot(x_data, y_data_1)
plt.plot(x_data, y_data_2)
plt.plot(x_data, y_data_3)
plt.plot(x_data, y_data_4)
plt.setp(ax5.get_yticklabels(), visible=False)

plt.hiển thị()

该代码加上导入/声明的 x 和 y 数据,结果为:

Generated plots

但是,还有一个更好的演示 đây用于创建具有共享轴的子图。我看到的共享轴的最佳解决方案使用了 .subplots()功能以提高代码的可读性/简单性,例如:
f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row')

祝你好运。

关于python - plt.subplot 轴共享不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46063284/

26 4 0
Bài viết được đề xuất: microsoft-graph-api - 是否可以过滤开放扩展?
Bài viết được đề xuất: arrays - SQL Server 查询 JSON 数组
Bài viết được đề xuất: frontend - 如何对前端项目进行版本控制?
Bài viết được đề xuất: makefile - 如何使用相对rpath编译OpenSSL
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com