python - 在同一图中将 x 轴的 2 个刻度

标签 python matplotlib

我看过一些示例,说明如何使用命令 twinx() 在单个绘图中为 y 轴添加 2 个刻度。但是,我仍然不知道如何为 x 轴添加 2 个刻度。在我的例子中,我从 MATLAB 导入 [x,y] 数据并绘制它们。我想在图的底部显示 x 的原始数据(我们可以称之为 x1),而标准化的 x 数据(我们可以称之为 x2) 在图的顶部。我的代码是:

from scipy.io import loadmat
import matplotlib.pyplot as plt
import numpy as np

# loading data
fid_1 = 'beta_sweep_020.mat'
m1 = loadmat(fid_1)

x = m1['vt_dX']
x1 = np.reshape(x, x.size)
x2 = x1 / (-466.0)
y = m1['vt_beta']
y1 = np.reshape(y, y.size)

# plot
fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(abs(x1),y1,'r')
plt.show()

谁能帮我解决这个问题?谢谢。

最佳答案

使用ax.twiny():

import matplotlib.pyplot as plt
import numpy as np

x1 = np.linspace(0,1000000,100)
x2 = x1 / (-466.0)
y1 = np.log(x1)

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
line1, = ax1.plot(x1,y1,'r')
line2, = ax2.plot(x2,y1,'b')

plt.legend((line1, line2), ('red', 'blue'))
plt.show()

enter image description here

关于python - 在同一图中将 x 轴的 2 个刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13652780/

相关文章:

python - 将两个数据框绘制到一个条形图中,区分它们的值

python - 从数据框中的索引获取最小值

python - 计数为零时的 pandas groupby 以及如何在结果中包含零值

python - 使用 tkinter 为单独的程序编写 Python UI。该程序的停止按钮基本上会卡住 UI 并继续执行脚本

python - 如何将 Librosa 光谱图保存为特定大小的图像?

python - 如何在 Python/Pylab/Seaborn/Plotly 中创建比较散点图/群图?

python - Python 子图中的作用域类似于 MATLAB 的 stackedplot()

python - 如何在 Pandas 表的时间间隔内获取具有 DatetimeIndex 的行?

python - Django 调试工具栏是否适用于 DRF?

python - 如何使我的折线图更具可读性?