1 回答

TA貢獻2039條經(jīng)驗 獲得超8個贊
可能的條相互重疊,并且較大的條疊加所有其他較小的條,因為您調(diào)用dodge=False. 如果您將plot_data數(shù)據(jù)限制為僅R帶有 的類別dodge=True,則所有類別都應(yīng)存在。由于計數(shù)圖不堆疊,請考慮堆疊條形圖而不是計數(shù)圖,這或多或少與分類變量的直方圖同義。
為了演示,請參見以下可重現(xiàn)的示例:
數(shù)據(jù)
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)
添加回答
舉報