我很近,但不完全在那里。我正在嘗試sns.catplot按每個分組中的值計數排序。
代碼和輸出:
fig = plt.subplots(dpi=300)
plt.figure(figsize=(10, 10))
grid = sns.catplot(data=df, kind='count', y='violation_raw', row='stop_duration', height=4, aspect=3,
sharey=False, palette="dark:salmon_r",
order=df['violation_raw'].value_counts(ascending=False).index)
ax = grid.axes[0, 0]
ax.bar_label(ax.containers[0])
ax = grid.axes[1, 0]
ax.bar_label(ax.containers[0])
ax = grid.axes[2, 0]
ax.bar_label(ax.containers[0])
plt.xlabel("Count", labelpad=12)
plt.margins(x=0.2)
plt.tight_layout()
plt.show()

它以完全相同的順序列出每個分組中的行,但它們不是按每個分組中的值計數排序的。
我想按value_counts()每個分組中的行進行排序。
uj5u.com熱心網友回復:
它以完全相同的順序列出每個分組中的行,但它們不是按每個分組中的值計數排序的。
這是因為order當前設定為全域值計數。我不確定是否可以為order每個方面設定不同的內容。
一種選擇是將groupby.value_counts()直接作為傳遞data并用 繪制分組計數kind='bar':
grid = sns.catplot(
data=df.groupby('stop_duration')['violation_raw'].value_counts().reset_index(name='violation_count'),
kind='bar', x='violation_count', y='violation_raw', row='stop_duration',
height=4, aspect=3, sharey=False, palette='dark:salmon_r')
for ax in grid.axes.flat:
ax.bar_label(ax.containers[0])

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453158.html
標籤:python-3.x 熊猫 排序 海运 猫图
