簡體   English   中英

從pandas DataFrame繪制數據,依賴於列的點的顏色

[英]Plot data from pandas DataFrame, colour of points dependant on a column

我有一個包含3列的pandas DataFrame,如下所示。

col1 value flag 1 0 0 2 0.03915 0 3 0.13 1

我想從這個數據幀創建一個散點圖,其中col1是x軸, value是y軸,而我正在努力做的部分是,對於有flag=0的行,我希望這個點的顏色是藍色和類似,如果flag=1我想要點紅色。

有沒有一個簡單的方法來檢查每行的標志列並相應地着色點?

您可以使用內置的df.plot.scatter()函數並將flag列傳遞給color參數:

import pandas as pd

idx = [1,2,3]
value = [0., 0.03, 0.13]
flag = [0, 0, 1]

df = pd.DataFrame(dict(idx=idx, value=value, flag=flag))

df.plot.scatter('idx', 'value', c='flag', cmap='RdBu_r')

在此輸入圖像描述

您可以將矢量傳遞到散點圖,如下所示

import matplotlib.pyplot as plt

df = pd.DataFrame(data = {'value':[0, 0.4, 0.13], 'flag':[0,0,1]})
plt.scatter(df['value'], df.index, c=df['flag'])

在此輸入圖像描述

假設包含給定數據的數據幀是df ,這就是你想要的。 您可以根據條件flag列及其值創建顏色列表。 將顏色列表提供給內置DataFrame.plot.scatter函數中的color參數。 (你可以在這里找到文檔。)

colors = ['r' if flag==1 else 'b' for flag in df.flag]
df.plot.scatter('col1', 'value', color=colors)

在此輸入圖像描述

希望這可以幫助。

暫無
暫無

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

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