使用 plotly 按列名称着色

color by a column name using plotly

我有以下格式的数据框:

 id     distance    value    is_match
 1      234         0.8      True 
 2      314         0.5      False
 3      904         0.1      False
 4      123         0.4      False
 5      287         0.9      True 

我尝试使用 plotly 绘制它。 X 轴将具有“距离”,Y 轴将具有“值”并使用“is_match”为圆圈着色。使用以下代码:

import plotly.express as px
px.scatter(df, x='distance', y='value', color='is_match')

但这不会根据“is_match”列对颜色代码进行着色。

如有线索,我们将不胜感激。

  • 工作正常。根据您样本的评论生成了更大的数据集
  • 当点数为 10**5 时,第二条迹线 (True) 占主导地位,因为它高于第一条迹线 (False)
import io
import pandas as pd
import numpy as np
import plotly.express as px

df = pd.read_csv(io.StringIO("""id     distance    value    is_match
 1      234         0.8      True 
 2      314         0.5      False
 3      904         0.1      False
 4      123         0.4      False
 5      287         0.9      True """), sep="\s+")


ROWS = 10**4
df = pd.DataFrame({"distance":np.random.randint(df["distance"].min(), df["distance"].max(), ROWS),
             "value":np.random.uniform(df["value"].min(), df["value"].max(), ROWS),
             "is_match":np.random.randint(0,2,ROWS).astype(bool)})

px.scatter(df, x='distance', y='value', color='is_match')