繁体   English   中英

Plotly px.Scatter 或 go.Scatter Graph 特定点的唯一颜色/符号(简单地图)

[英]Plotly px.Scatter or go.Scatter Graph Unique Color/Symbol for specific points (Simple Map)

我正在尝试使用 Plotly 创建一个简单的网站 map。我不能使用 scatter_geo,因为我使用的是相对于网站的已知 X、Y 坐标 - 而不是纬度/经度。 px.Scatter 或 go.Scatter 似乎是最简单的 map 的可行选择。所以,我有一个 dataframe,基本上看起来像:

Location     Tag     x_coord    y_coord
Unit1        1-ABC     12.2       2.2
Unit1        2-DEF     -4.2       18
Unit2        3-HIJ      9          2
NaN          NaN        11         12
NaN          NaN        13         14
NaN          NaN        15         16

NaN 是未找到标签的位置,但我们用于映射的工具继续跟踪 X、Y 坐标。 因此,这些要点也非常有用。

首先,为了创建一个简单的散点图 plot,我使用了:

fig = px.scatter(tagLocData, x=tagLocData['x_locations'], y=tagLocData['y_locations'])

这对于基本绘图来说效果很好,但我看不到不同的位置。 所以,我搬到了:

fig = px.scatter(tagLocData, x=tagLocData['x_locations'], y=tagLocData['y_locations'], color='Location')

但是,这不包括在该位置找不到任何东西的坐标,仅包括该位置: 在此处输入图像描述

然后我尝试通过以下方式向 go 添加跟踪。图:

fig = go.Figure(data=go.Scatter(x=tagLocData['x_locations'], y=tagLocData['y_locations'],\
                                mode='markers')) 


fig.add_trace(go.Scatter(x=tagLocData['x_locations'], y=tagLocData['y_locations'], fillcolor='Location'))

这产生了一个预期的错误,需要特定的位置颜色,所以我尝试制作一个 colorDict。

colors = ColorDict()
test = dict(zip(tagLocData['Location'].unique(), colors))

fig = go.Figure(data=go.Scatter(x=tagLocData['x_locations'], y=tagLocData['y_locations'],\
                                mode='markers', marker=test)) 

这会将 X、Y 标记覆盖在实际位置上。 我也尝试了其他一些事情,但没有运气。 那里有很多相关的问题,但似乎没有什么能解决我想做的事情。

如何使用此数据创建漂亮的 X、Y 散点图 plot?

px.scatter将忽略NaN值,因此您可以使用类似"None"的字符串填充 NaN,并将该 dataframe 传递给 px.scatter:

fig = px.scatter(tagLocData.fillna("None"), x='x_coord', y='y_coord', color='Location')

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM