我想组合两个具有不同范围的数字,例如图
该图是通过绘制两个图合成的。但是,我想立即使用seaborn 库。但现在它显示像
.
如何使用seaborn或任何其他Python绘图库组合不同的y范围数字?
我也添加了我的 python 代码
import seaborn as sns
import numpy as np
with sns.axes_style('white'):
ax = sns.lineplot(x='unit_step', y='accuracy', hue='data_type', style='data_type', markers=True, dashes=True, data=data)
ax.set_xticks(np.arange(1,6))
最佳答案
据我了解,您的问题是关于如何将两个范围截然不同的数据集绘制到一个子图中的请求,这里有一些提示您如何实现这一目标。
tl;dr:最后你只需要把 plt.twinx()
放在 plt.plot() 命令之前,该命令应该有一个辅助 y 轴。
首先假设两个函数,它们在同一定义范围内具有非常不同的值范围,f(x) = x³
和 f(x) = sin(x)
:
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y1 = x**3
y2 = np.sin(x)
可以这样绘制:
fig, axs= plt.subplots(1, 2, figsize=(12, 6))
axs[0].plot(x, y1, 'b', x, y2, 'r')
axs[0].set_xlabel('X')
axs[0].set_ylabel('Y')
axs[1].plot(x, y1, 'b')
axs[1].set_xlabel('X')
axs[1].set_ylabel('Y1')
axs_sec = axs[1].twinx() # <--- create secondary y-axis
axs_sec.plot(x, y2, 'r')
axs_sec.set_ylabel('Y2')
在左侧,您可以看到,如果绘制到同一 y 轴,则正弦几乎是不可见的。 在右侧,正弦被绘制到辅助 y 轴上,以便它有自己的缩放比例。
关于python - 如何在保持 y 值范围的同时结合两个 Seaborn 线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52982277/