在plotly中,continuous int变量自动变成了colorbar,那么如何让它成为图例而不是colorbar?

问题描述 投票:0回答:1
import pandas as pd
import plotly.graph_objs as go
import plotly.express as px
import numpy as np
import random

df = pd.DataFrame()
df["x"] = np.sin(np.arange(100))
df["y"] = np.sin(np.arange(-100,100,2))
df["z"] = 2*np.sin(np.arange(100))
_ = []
for i in range(100):
    _.append( random.choice([1,2,3]))
    # _.append( random.choice(["A","B","C"]))

df["type"] = _

fig = px.scatter_3d(data_frame = df, x="x", y="y", z="z", color="type")
fig.show()

上面的代码显示了它。

它自动为“types - 1,2,3”生成颜色条

但是如果我将“类型”更改为[“A”,“B”,“C”],它会显示如下。

它会自动生成图例,而不是颜色条。

我想为 [1,2,3] 创建图例,而不是颜色条。如下图。

但我找不到它的选项。

plotly
1个回答
0
投票

@PaulH 回答了它。

我将数据类型更改为“对象”并按顺序制作图例。

代码如下。

df["type"]=df["type"].astype("object")
fig = px.scatter_3d(data_frame = df, x="x", y="y", z="z", color="type", 

category_orders={"type" : [1,2,3]}) # this line is for ordered legend. 
© www.soinside.com 2019 - 2024. All rights reserved.