如何解决 'color' 属性 收到的无效元素?
How to solve Invalid element(s) received for the 'color' property?
我有一段代码可以根据一天中观察散点的时间为散点图赋予不同的颜色。这是根据以下代码完成的:
color=listCoords.index.hour
在上下文代码中:
return go.Figure(
data=[
# Data for all observations based on date and time
Scattermapbox(
lat=listCoords["Lat"],
lon=listCoords["Lon"],
mode="markers",
hoverinfo="text + lat + lon",
text=listCoords.index.hour,
marker=dict(
showscale=True,
color=listCoords.index.hour,
opacity=np.where((listCoords['Threat'] == '3'), 0.1, 0.7),
size=np.where((listCoords['Threat'] == '3'), 20, 7),
colorscale=[
[0, "#F4EC15"],
[0.04167, "#DAF017"],
[0.0833, "#BBEC19"],
[0.125, "#9DE81B"],
[0.1667, "#80E41D"],
[0.2083, "#66E01F"],
[0.25, "#4CDC20"],
[0.292, "#34D822"],
[0.333, "#24D249"],
[0.375, "#25D042"],
[0.4167, "#26CC58"],
[0.4583, "#28C86D"],
[0.50, "#29C481"],
[0.54167, "#2AC093"],
[0.5833, "#2BBCA4"],
[1.0, "#613099"],
],
colorbar=dict(
title="Time of<br>Day",
x=0.93,
xpad=0,
nticks=24,
tickfont=dict(color="#d8d8d8"),
titlefont=dict(color="#d8d8d8"),
thicknessmode="pixels",
),
),
),
我想把'color='改成:
color=np.where((listCoords['Threat'] == '3'), 'red', listCoords.index.hour)
so that the dots become 'red' if their 'Threat' value equals '3'
otherwise "color" should just be 'listCoords.index.hour'
但是这个新的代码更新给出了:
ValueError:
Invalid element(s) received for the 'color' property of scattermapbox.marker
Invalid elements include: ['4', '4', '4', '4', '4', '4', '4', '4', '4', '4']
The 'color' property is a color and may be specified as:
- A hex string (e.g. '#ff0000')
- An rgb/rgba string (e.g. 'rgb(255,0,0)')
- An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
- An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
- A named CSS color:
aliceblue, antiquewhite, aqua, aquamarine, azure,
beige, bisque, black, blanchedalmond, blue,
blueviolet, brown, burlywood, cadetblue,
chartreuse, chocolate, coral, cornflowerblue....
QUESTION: So yes, it is expecting a CSS color obviously. But seeing that initially 'color=' did consider listCoords.index.hour
as
a value, how can I make this item consider that value again if not
'red'?
解决方案:
应用了以下部分:
color=np.where((listCoords['Threat'] == '3'), 'red', listCoords.index.hour)
输出错误:
ValueError:
Invalid element(s) received for the 'color' property of scattermapbox.marker
Invalid elements include: ['4', '4', '4', '4', '4', '4', '4', '4', '4', '4']
The 'color' property is a color and may be specified as:
- A hex string (e.g. '#ff0000')
- An rgb/rgba string (e.g. 'rgb(255,0,0)')
- An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
- An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
- A named CSS color:
aliceblue, antiquewhite, aqua, aquamarine, azure,
beige, bisque, black, blanchedalmond, blue,
blueviolet, brown, burlywood, cadetblue,
chartreuse, chocolate, coral, cornflowerblue....
为了解决这个问题,我通过 0 = 'red' (#FF0000).
改变了色阶
后来我说if('Threat == 3'给0)else给常规颜色
我的新代码(只更新了部分):
red = 0
mycolors = np.where((listCoords['Threat'] == '3'), red, listCoords.index.hour)
print(mycolors)
和
color=np.array(mycolors, int),
colorscale=[
[0, "#FF0000"],
[0.04167, "#DAF017"],
[0.0833, "#BBEC19"],
[0.125, "#9DE81B"],
[0.1667, "#80E41D"],
[0.2083, "#66E01F"],
[0.25, "#4CDC20"],
[0.292, "#34D822"],
[0.333, "#24D249"],
[0.375, "#25D042"],
[0.4167, "#26CC58"],
[0.4583, "#28C86D"],
[0.50, "#29C481"],
[0.54167, "#2AC093"],
[0.5833, "#2BBCA4"],
[1.0, "#613099"],
],
我有一段代码可以根据一天中观察散点的时间为散点图赋予不同的颜色。这是根据以下代码完成的:
color=listCoords.index.hour
在上下文代码中:
return go.Figure(
data=[
# Data for all observations based on date and time
Scattermapbox(
lat=listCoords["Lat"],
lon=listCoords["Lon"],
mode="markers",
hoverinfo="text + lat + lon",
text=listCoords.index.hour,
marker=dict(
showscale=True,
color=listCoords.index.hour,
opacity=np.where((listCoords['Threat'] == '3'), 0.1, 0.7),
size=np.where((listCoords['Threat'] == '3'), 20, 7),
colorscale=[
[0, "#F4EC15"],
[0.04167, "#DAF017"],
[0.0833, "#BBEC19"],
[0.125, "#9DE81B"],
[0.1667, "#80E41D"],
[0.2083, "#66E01F"],
[0.25, "#4CDC20"],
[0.292, "#34D822"],
[0.333, "#24D249"],
[0.375, "#25D042"],
[0.4167, "#26CC58"],
[0.4583, "#28C86D"],
[0.50, "#29C481"],
[0.54167, "#2AC093"],
[0.5833, "#2BBCA4"],
[1.0, "#613099"],
],
colorbar=dict(
title="Time of<br>Day",
x=0.93,
xpad=0,
nticks=24,
tickfont=dict(color="#d8d8d8"),
titlefont=dict(color="#d8d8d8"),
thicknessmode="pixels",
),
),
),
我想把'color='改成:
color=np.where((listCoords['Threat'] == '3'), 'red', listCoords.index.hour)
so that the dots become 'red' if their 'Threat' value equals '3' otherwise "color" should just be 'listCoords.index.hour'
但是这个新的代码更新给出了:
ValueError:
Invalid element(s) received for the 'color' property of scattermapbox.marker
Invalid elements include: ['4', '4', '4', '4', '4', '4', '4', '4', '4', '4']
The 'color' property is a color and may be specified as:
- A hex string (e.g. '#ff0000')
- An rgb/rgba string (e.g. 'rgb(255,0,0)')
- An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
- An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
- A named CSS color:
aliceblue, antiquewhite, aqua, aquamarine, azure,
beige, bisque, black, blanchedalmond, blue,
blueviolet, brown, burlywood, cadetblue,
chartreuse, chocolate, coral, cornflowerblue....
QUESTION: So yes, it is expecting a CSS color obviously. But seeing that initially 'color=' did consider
listCoords.index.hour
as a value, how can I make this item consider that value again if not 'red'?
解决方案:
应用了以下部分:
color=np.where((listCoords['Threat'] == '3'), 'red', listCoords.index.hour)
输出错误:
ValueError:
Invalid element(s) received for the 'color' property of scattermapbox.marker
Invalid elements include: ['4', '4', '4', '4', '4', '4', '4', '4', '4', '4']
The 'color' property is a color and may be specified as:
- A hex string (e.g. '#ff0000')
- An rgb/rgba string (e.g. 'rgb(255,0,0)')
- An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
- An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
- A named CSS color:
aliceblue, antiquewhite, aqua, aquamarine, azure,
beige, bisque, black, blanchedalmond, blue,
blueviolet, brown, burlywood, cadetblue,
chartreuse, chocolate, coral, cornflowerblue....
为了解决这个问题,我通过 0 = 'red' (#FF0000).
改变了色阶后来我说if('Threat == 3'给0)else给常规颜色
我的新代码(只更新了部分):
red = 0
mycolors = np.where((listCoords['Threat'] == '3'), red, listCoords.index.hour)
print(mycolors)
和
color=np.array(mycolors, int),
colorscale=[
[0, "#FF0000"],
[0.04167, "#DAF017"],
[0.0833, "#BBEC19"],
[0.125, "#9DE81B"],
[0.1667, "#80E41D"],
[0.2083, "#66E01F"],
[0.25, "#4CDC20"],
[0.292, "#34D822"],
[0.333, "#24D249"],
[0.375, "#25D042"],
[0.4167, "#26CC58"],
[0.4583, "#28C86D"],
[0.50, "#29C481"],
[0.54167, "#2AC093"],
[0.5833, "#2BBCA4"],
[1.0, "#613099"],
],