Arc*_*hie 5 python histogram python-3.x seaborn
我的问题相当简单:我想使用 Seaborn 模块可视化多个直方图,但是,由于许多箱包含的计数很少,我想使用对数刻度可视化垂直轴。
到目前为止我的代码:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.rand(100,2), columns=['A','B'])
df = pd.melt(df, var_name='Category')
g = sns.FacetGrid(df, col='Category', sharex=True, sharey=False, aspect=1.5)
g = g.map(plt.hist, "value", color="r")
Run Code Online (Sandbox Code Playgroud)
如何将垂直轴更改为对数刻度(以最“pythonic”/“seabornic”的方式)?我查看了各种答案,但对迄今为止找到的答案不满意。
更新:按照此处的 答案添加以下代码,使我的酒吧消失:
g.fig.get_axes()[0].set_yscale('log')
Run Code Online (Sandbox Code Playgroud)
更新二: 以下代码解决了我的问题:
df = pd.DataFrame(np.random.rand(100,2), columns=['A','B'])
df = pd.melt(df, var_name='Category')
g = sns.FacetGrid(df, col='Category', sharex=True, sharey=False, aspect=1.5)
g = g.map(plt.hist, "value", color="r", log=True)
Run Code Online (Sandbox Code Playgroud)
我刚刚添加了最后几行:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.rand(100,2), columns=['A','B'])
df = pd.melt(df, var_name='Category')
g = sns.FacetGrid(df, col='Category', col_wrap=2, sharex=True, sharey=False, aspect=1.5)
g = g.map(plt.hist, "value", color="r")
g.axes[0].set_yscale('log')
g.axes[1].set_yscale('log')
Run Code Online (Sandbox Code Playgroud)