首页 > 解决方案 > 散点图根据值标记不同的颜色

问题描述

我有两列数据框。一列表示 CPU 节点,另一列表示阈值。我需要为该数据框绘制散点图。我的问题是如何在阈值列上获得不同的颜色。例如,0-25% 的绿色、25-50% 的浅绿色、50-75% 的黄色和 75% 以上的红色。到目前为止,我只得到一种颜色。

下面是数据框

cpu node  threshold
node 1      20
node 2      30
node 3      50
node 4      59
node 5      65
node 6      95

我写的代码:

fig = go.Figure(go.Scatter(mode="markers", x=cpu node, y=threshold, marker_symbol='triangle-up',
                           marker_line_color="midnightblue", marker_color="lightskyblue",
                           marker_line_width=2, marker_size=15,
                           hovertemplate=cpu node))

在此处输入图像描述 以上仅给出带有三角形标记的单一颜色。

谁能告诉我如何使用自定义颜色获得看起来像这样的图形,即;['green', 'light green', 'yellow', 'red']基于值的范围 在此处输入图像描述

标签: pythonplotlyplotly-dash

解决方案


在这种情况下,将标记颜色设置为 y 轴的值。

import plotly.graph_objects as go

fig = go.Figure(go.Scatter(mode="markers", x=df['cpu node'], y=df['threshold'], marker_symbol='triangle-up',
                           marker_line_color="midnightblue", marker_color=df['threshold'],
                           marker_line_width=2, marker_size=15,
                           hovertemplate=df['cpu node']))

fig.show()

在此处输入图像描述


推荐阅读