我試圖在一個季度內為選定的客戶可視化不同型別的“購買”。為了生成這種視覺效果,我在 seaborn 中使用了 catplot 功能,但無法添加連接每個購買的水果的水平線。每行應該從每個水果的第一個點開始,到同一個水果的最后一個點結束。關于如何以編程方式執行此操作的任何想法?
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
dta = pd.DataFrame(columns=["Date", "Fruit", "type"], data=[['2017-01-01','Orange',
'FP'], ['2017-04-01','Orange', 'CP'], ['2017-07-01','Orange', 'CP'],
['2017-10-08','Orange', 'CP'],['2017-01-01','Apple', 'NP'], ['2017-04-01','Apple', 'CP'],
['2017-07-01','Banana', 'NP'], ['2017-10-08','Orange', 'CP']
])
dta['quarter'] = pd.PeriodIndex(dta.Date, freq='Q')
sns.catplot(x="quarter", y="Fruit", hue="type", kind="swarm", data=dta)
plt.show()
這是結果:
.
如何添加單獨的水平線,每條水平線連接購買橙子和蘋果的點?
uj5u.com熱心網友回復:
您只需要為圖表啟用水平網格,如下所示:
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
dta = pd.DataFrame(
columns=["Date", "Fruit", "type"],
data=[
["2017-01-01", "Orange", "FP"],
["2017-04-01", "Orange", "CP"],
["2017-07-01", "Orange", "CP"],
["2017-10-08", "Orange", "CP"],
["2017-01-01", "Apple", "NP"],
["2017-04-01", "Apple", "CP"],
["2017-07-01", "Banana", "NP"],
["2017-10-08", "Orange", "CP"],
],
)
dta["quarter"] = pd.PeriodIndex(dta.Date, freq="Q")
sns.catplot(x="quarter", y="Fruit", hue="type", kind="swarm", data=dta)
plt.grid(axis='y')
plt.show()
預習

uj5u.com熱心網友回復:
每行應該從每個水果的第一個點開始,到同一個水果的最后一個點結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441338.html
標籤:Python 熊猫 matplotlib 海运 线

