【发布时间】:2020-11-11 17:38:15
【问题描述】:
我正在尝试使用 matplotlib 中的轴方法 set_yscale() 在每个直方图的 y 轴上生成对数刻度,但是当使用 @ 中的 by 键创建多个直方图时,它似乎忽略了此方法987654324@.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# generate some random data
df = pd.DataFrame(np.random.randint(0,100,size=(1000, 2)), columns=list('AB'))
fig, ax = plt.subplots(figsize = (15,20))
ax.set_yscale('log')
df['A'].hist(ax=ax, by=df['B'])
【问题讨论】:
-
你如何使用一个元组来解包不同子图的轴?
fig, (ax1, ax2) = plt.subplot(1, 2)matplotlib.org/3.3.2/api/_as_gen/… -
@Robert 似乎确实有效,但如果您有几十个子图,它就不是一个可扩展的解决方案。
-
你能提前指定你想要的
subplot的形状吗?fig, axs = plt.subplots(4, 1)然后您可以在一个列表理解中设置比例:[ax.set_yscale('log') for ax in axs]
标签: python python-3.x pandas matplotlib