簡體   English   中英

使用分類數據和數值數據繪制 pandas dataframe 的散點圖 plot

[英]Plotting scatter plot of pandas dataframe with both categorical and numerical data

我正在嘗試將 plot 分散為以下類型的 pandas dataframe 的 plot:

df = pd.DataFrame([['RH1', 1, 3], ['RH2', 0, 3], ['RH3', 2, 0], ['RH4', 1, 2], columns=['name', 'A', 'B'])

最終的 plot 應將“名稱”列作為 Y 軸,將“A”和“B”作為 X 軸。 並且不同的數值具有不同的顏色。 像這樣的在此處輸入圖像描述

我嘗試通過遍歷 dataframe 的每一行來實現 plot 但我卡在某個地方無法做到,我遇到的主要問題是兩個軸的大小。 如果有人能幫助我,那就太好了。 先感謝您。

您可以融化dataframe 並將這些值用作顏色列:

from matplotlib import pyplot as plt
import pandas as pd

df = pd.DataFrame([['RH1', 1, 3], ['RH2', 0, 3], ['RH3', 2, 0], ['RH4', 1, 2]], columns=['name', 'A', 'B'])

df.melt(["name"]).plot(x="variable", y= "name", kind="scatter", c="value", cmap="plasma")
plt.show()

樣本 output: 在此處輸入圖像描述

如果您的值數量有限,您可以將顏色圖更改為離散顏色圖,並將每種顏色及其值更改為 label。 或者,使用 seaborn 的 stripplot:

from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns

df = pd.DataFrame([['RH1', 1, 3], ['RH2', 0, 3], ['RH3', 2, 0], ['RH4', 1, 2]], columns=['name', 'A', 'B'])

sns.stripplot(data=df.melt(["name"]), x="variable", y= "name", hue="value", jitter=False)
plt.show()

Output: 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM