簡體   English   中英

3D通過分類(x,y)坐標散布顏色?

[英]3D scatter color by categorical (x,y) coordinates?

我試圖使散點具有相同的顏色(如果它們具有相同的(x,y)值但具有不同的Z值)。

到目前為止,我設法使用了一個x或y變量,但是我無法以某種方式將它們“壓縮”在一起。

df["X"]=pd.Categorical(df["X"])
df["Y"]=pd.Categorical(df["Y"])
df["X"].cat.codes
df["Y"].cat.codes
bx.scatter(xs,ys,zs, zdir=zs, c=df["X"].cat.codes,cmap="Set1", alpha=1)

我試圖單獨壓縮它們,我試圖用它們制作一個陣列...如果我嘗試

df["cat"]=pd.Categorical(zip(df["X"],df["Y"]))
df["cat"].cat.codes

我得到的只是一個類別代碼,所以一切都一樣。

有任何想法嗎? 在此處輸入圖片說明

圖片說明

起初我以為日期應該是類別,但這沒有意義,因為每一天(因為Zaxes采用日期時間格式)都會有不同的顏色。 相反,每個可能的(x,y)對,即。 (1,-1),(2,1)等本身應該是一個類別(是否使用正確的詞?),因此每一對都應具有自己的顏色,例如(1,-1)是黑色的,( 2,1)是紅色,與Z坐標無關

實際上,該解決方案非常簡單,只花了一些時間

原始DF具有X,Y,Date列。

xs=df.X
ys=df.Y
zs=np.array(df_dates2num)
N=len(df)

val_x=df["X"].tolist()
val_y=df["Y"].tolist()

df["pairs"]=pd.Series(list(zip(val_x,val_y)), index=df.index) #make(x,y) pairs

df["pairs"]=df["pairs"].astype("category") 
df["pairs"]=df.pairs.cat.codes

bx.scatter(xs,ys,zs, zdir=zs, c=df["pairs"], alpha=1, s=50) #scatter dots

而且它確實有效,唯一缺少的是使用更離散的調色板。

暫無
暫無

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

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