小提琴图的底部用对数刻度 y 轴截断

The bottom of violinplots are cutoff with log scale y-axis

提问人:MCjuberfish 提问时间:10/21/2023 最后编辑:Trenton McKinneyMCjuberfish 更新时间:10/24/2023 访问量:35

问:

我试图用小提琴图以对数比例绘制具有大量数据点(每个数据点约 30,000 个)的两个条件,但它返回一个永无止境的块而不是分布。我在绘图之前融化了我的数据帧,我使用的代码以及结果可以在下面看到。任何帮助将不胜感激,谢谢。

df_melted = pd.melt(df, value_vars=['Condition_1', 'Condition_2'])
violin_plot = sns.violinplot(data=df_melted, x='variable', y='value')
violin_plot.set_yscale("log")
violin_plot.set_ylim([0.000001,1])
plt.savefig('pic.png', dpi=300, format='png')

Example.png

python matplotlib seaborn yaxis

评论

0赞 JohanC 10/21/2023
小提琴图文档提到了一个参数,在0.13版本中是新的。log_scale
0赞 MCjuberfish 10/21/2023
我正在尝试安装 0.13.0,当我尝试时,它说它只能转到 0.9.0 版本。这能解决我的小提琴情节只是盒子的事实吗?
1赞 JohanC 10/22/2023
是的,在 seaborn 0.13 应该可以解决您的问题。请参阅此更新的帖子,其中还显示了一种更复杂的旧方法,涉及将数据转换为日志空间并创建自定义刻度标签以模拟对数比例。您是否使用最新的 matplotlib 版本运行 Python 3?sns.violinplot(..., log_scale=True)

答: 暂无答案