我想将两个具有不同范围的数字结合起来
该图是通过绘制两个图而合成的。但是,我想立即使用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:最后,您只需在 .plot()-命令之前放置plt.twinx()
,该命令应具有次要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/