[英]Plotly: How to make a frequency plot for discrete/categorical variables?
我嘗試探索他們網站上的所有內容,但無論如何都沒有( https://plotly.com/python/v3/frequency-counts/和https://plotly.com/python/v3/discrete-frequency/ 不會t解決我的問題)。 I wanted to plot a graph just like seaborn countplot ( https://seaborn.pydata.org/generated/seaborn.countplot.html ).
我有這個數據集:
id state value
19292 CA 100
24592 CA 200
12492 GE 340
11022 GE 500
99091 CO 250
59820 CO 220
50281 CA 900
我只想要一個條形圖,x 軸為 CA、GE 和 CO,y 軸分別為 3、2 和 2。
您只需要先按groupby
state
,然后像這樣使用count
:
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> df
id state value
0 19292 CA 100
1 24592 CA 200
2 12492 GE 340
3 11022 GE 500
4 99091 CO 250
5 59820 CO 220
6 50281 CA 900
>>> new_df = df.groupby(["state"]).count().reset_index()
state id value
0 CA 3 3
1 CO 2 2
2 GE 2 2
>>> new_df.plot.bar(x="state", y="value")
>>> plt.show()
它返回以下圖表:
如果將 plotly 設置為 pandas 的繪圖后端,則可以首先對數據進行分組並執行以下操作:
df.groupby(["state"]).count().reset_index().plot(x='state', y='value', kind='bar')
import pandas as pd
pd.options.plotting.backend = "plotly"
df = pd.DataFrame({'id': {0: 19292, 1: 24592, 2: 12492, 3: 11022, 4: 99091, 5: 59820, 6: 50281},
'state': {0: 'CA', 1: 'CA', 2: 'GE', 3: 'GE', 4: 'CO', 5: 'CO', 6: 'CA'},
'value': {0: 100, 1: 200, 2: 340, 3: 500, 4: 250, 5: 220, 6: 900}})
df.groupby(["state"]).count().reset_index().plot(x='state', y='value', kind='bar')
但是,如果您想要一個可以進一步擴展的設置,我會像這樣使用px.bar :
dfg = df.groupby(["state"]).count()
fig = px.bar(dfg, x=dfg.index, y="value")
fig.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.