1 回答
TA贡献2039条经验 获得超8个赞
可能的条相互重叠,并且较大的条叠加所有其他较小的条,因为您调用dodge=False. 如果您将plot_data数据限制为仅R带有 的类别dodge=True,则所有类别都应存在。由于计数图不堆叠,请考虑堆叠条形图而不是计数图,这或多或少与分类变量的直方图同义。
为了演示,请参见以下可重现的示例:
数据
import numpy as np
import pandas as pd
from matplotlib import pyplot
import seaborn as sns
### DATA BUILD
data_tools = ['sas', 'stata', 'spss', 'python', 'r', 'julia']
np.random.seed(12220)
random_df = pd.DataFrame({'group': np.random.choice(data_tools, 500),
'int': np.random.randint(1, 10, 500)})
第一个图 (查看只有 int=6 处的大“stata”栏如何显示)
flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
fig, ax = pyplot.subplots(figsize=(8,4))
g = sns.countplot(ax=ax,
y="int",
hue="group",
palette=(sns.color_palette("hls", 8) +
sns.color_palette("Paired") +
sns.color_palette(flatui)),
dodge=False,
data=random_df)
g.legend(loc='upper center', ncol=3)

第二个图 (在 int=6 时仅显示“stata”处的最大条之外的其他类别)
fig, ax = pyplot.subplots(figsize=(8,4))
g = sns.countplot(ax=ax,
y="int",
hue="group",
palette=(sns.color_palette("hls", 8) +
sns.color_palette("Paired") +
sns.color_palette(flatui)),
dodge=True, # CHANGING DODGE PARAM
data=random_df.query("int==6")) # FILTERING DATA
g.legend(loc='upper center',ncol=3)

添加回答
举报
