【发布时间】:2019-04-14 02:35:09
【问题描述】:
我有两个具有整数值的列表,我想在 python 中使用 seaborn 并排绘制它们的两个直方图:
fig, [ax1, ax2] = plt.subplots(nrows=1, ncols=2, figsize=(16,6))
sns.set(style="whitegrid")
sns.distplot(list1, bins=30, rug=True, kde=False, ax=ax1)
sns.distplot(list2, bins=30, rug=True, kde=False, ax=ax2)
ax1.set_yscale('log')
ax2.set_yscale('log')
plt.show()
显然,右图包含无用信息,因为条形的高度是整数。因此,我根本没有兴趣查看 0 到 1 之间数字的对数刻度,即我想摆脱 10^{-power}。如何以 10 次方表示法将正确绘图的标签强制为 0、1、10、100 和 1000?就像左边的情节一样。谢谢。
【问题讨论】:
-
嗯,左右图的符号相同。我不确定我是否理解你想要什么。
-
@ImportanceOfBeingErnest 它们具有相同的符号。然而,这是一个直方图,因此每个条形图都有一个整数高度。所以考虑10^-n是没有用的
-
您正在绘制分布图。那肯定有远低于 1 的值。
-
> 如何强制正确的情节标签为 0、1、10、100 和 1000 的 10 次方符号?两者都是对数比例,还是您指的是相同的范围?还有 x 轴还是 y 轴?
-
@GlobalTraveler 范围不同,因为右侧图的数据上升到 10^4,而左边的图上升到 10^3。两者都是对数刻度,但在右边有一个无用的对数刻度划分,因为没有信息介于 0 和 1 之间。也就是说,它就像我有一个高度为 10^2 的条形图和另一个高度为 9^2 的条形图,而我有一个比例为 10^-12 的情节。那没用。
标签: matplotlib seaborn