python - 在 Matplotlib lib 中创建 10 个不同的图形而不单独创建它们
问题描述
我正在尝试使用 Matplotlib 创建一个绘图,该绘图具有两个 x 轴、顶部和底部以及一个 y 轴。然后我想把这个情节分成10个不同的数字。我试图弄清楚如何在不单独创建每个图形的情况下做到这一点。
例如:x 轴是英里 30 - 60,次要 x 与主轴相同,但单位是英尺。我不想在一张图表上显示 30 英里。我希望每个图表只有 3 英里。
有人对此有建议吗?
解决方案
这个怎么样?当然,您必须弄清楚格式。
import numpy as np
import matplotlib.pyplot as plt
X = np.arange(30, 61)
Y = np.cos(X*0.5)
n_plots = np.ptp(X) // 3 # 3 miles per subplot
XY_chunks = list(zip(np.array_split(X, n_plots),
np.array_split(Y, n_plots)))
fig, axs = plt.subplots(nrows=1, ncols=n_plots, figsize=(15, 2), sharey='row')
for i in range(n_plots):
XX, YY = XY_chunks[i] # Unpack X and Y for this plot
axs[i].plot(XX,YY) # Plot miles
ax2 = axs[i].twiny() # This will be your feet axis
ax2.set_xticklabels((XX*5280).round(), rotation=90) # Convert to feet
axs[i].set_xlabel('Miles')
ax2.set_xlabel('Feet')
plt.show()
推荐阅读
- laravel - 如何将数组插入 BD Laravel
- javascript - JavaScript:搜索 URL 参数并将其删除,包括值
- python - 将导入的函数设置为静态字典中的成员
- mips - 如何将输入字符串从用户传递到 MIPS 程序
- python - 需要在 if 语句中嵌套 if 语句的指导
- c# - EF Core 2.0 一对一 - 有什么关系?
- mysql - MySQL - 仅根据值从一个表中填充
- chapel - 如何配置 Chapel/GASNet 以使用分区密钥在 MXM Infiniband 网络上运行多语言环境代码?
- javascript - Node.js 或 Javascript 的 *.js 文件顶层的上下文或范围是什么?
- cordova - Codrova XMLHttpRequest 文件下载