我试图建立一个雷达图,其中每一行是不同的颜色。
我觉得我已经按照文件密切,我现在面临着一个错误,我似乎无法解决,特别是因为没有错误的输出!
下面是我正在使用的一些虚拟数据:
r = [52,36,85]
theta = ["analytique", "analogique", "affectif"]
colors = ["blue", "red","yellow"]
下面是我的图表:
for i in range(len(theta)):
fig_reception.add_trace(go.Scatterpolar(
mode='lines+text',
theta=[theta[i]],
r=[r[i]],
, line_color=text_colors[i],
fillcolor='#d3d3d3',
marker=dict(color=text_colors),
))
fig_reception.update_layout(autosize=False,
height=305,
polar=dict(radialaxis = dict(range=[0,100],visible = False),
angularaxis=dict(rotation=180,direction="clockwise") )
)
fig_reception.update_layout(
template=None,
polar = dict(bgcolor = "rgba(255, 255, 255, 0.2)"),)
fig_reception.update_layout(
font=dict(
size=16,
color="black",
family="Courier New, monospace",
),
title="Réception",
title_font_family="Courier New, monospace",
showlegend=False
)
奇怪的是,当我悬停在每一行上时,会显示一个具有正确颜色和值的框架。
这是x1c 0d1x的图片
1条答案
按热度按时间rqqzpn5f1#
我没有一个完整的解决方案给你,但我希望我的答案引导你在正确的方式。
简单开始
首先,让我们简化并使用默认颜色绘制雷达/spyder图:
| | r|θ|类型|
| - ------|- ------|- ------|- ------|
| 无|五十二|解析图|一|
| 1个|三十六|类比|二|
| 第二章|八十五|情感的|三|
用
plotly.express.line_polar
绘制,得到:每个边缘都有自己的颜色
现在,您希望每条边都有自己的颜色,在本例中,我假设您希望此颜色基于前面定义的列
type
。简单地直接画出来是行不通的,它只会给予你点,而不是线:
您需要复制这些行,并为连续数据点分配相同的
type
。| | r|θ|类型|
| - ------|- ------|- ------|- ------|
| 1个|三十六|类比|二|
| 1个|三十六|类比|一|
| 无|五十二|解析图|一|
| 无|五十二|解析图|三|
| 第二章|八十五|情感的|三|
| 第二章|八十五|情感的|二|
现在如果你把它画出来,你会得到一个三角形,每条边都有不同的颜色:
不确定为什么类别改变了顺序,但是您可能可以通过对
df2
DataFrame进行不同的排序来解决这个问题。文本标签
如果您想在图表中使用文本标签,您需要find in the docs确保存在
text
参数: