我刚用Plotly创建了一张地图,显示了年份的销售差异,因此结果有负数和正数。
我希望显示两种不同的颜色,表示正数和负数,圆的大小表示销售差异的数量。 我想这样做,即使是负数,所以小圆圈显示体积大但颜色与正面颜色不同。
我的代码只显示颜色的最大和最小数字差异,负数太小。
如何在图表上显示2种不同颜色和圆圈大小的销售差异?
import plotly.plotly as py
from plotly.graph_objs import *
mapbox_access_token = '**Mapbox API**'
data = Data([
Scattermapbox(
lat=part1_loc['Latitude'],
lon=part1_loc['Longitude'],
text = part1_loc['diff2018'],
mode='markers',
marker=Marker(
showscale=True,
cmax=39000,
cmin=-27000,
size= part1_loc['diff2018'],
color =part1_loc['diff2018'],
#color ='rgb(255, 0, 0)',
colorscale= 'Portland',
opacity=0.6,
symbol = 'circle',
),
)
])
layout = Layout(
autosize=True,
hovermode='closest',
width=1450,
margin=go.Margin(
l=10,
r=100,
b=10,
t=10
),
height=650,
mapbox=dict(
accesstoken=mapbox_access_token,
bearing=0,#
center=dict(
lat=-37,
lon=175
),
pitch=0,
zoom=8.9,
style='light',
),
)
fig = dict(data=data, layout=layout)
py.iplot(fig, filename='Sales_diff')
这是你的结果图;
我还在Plotly here is the link找到了一个用于两个变量的例子 但我不知道如何将负数和正数作为一个数据中的不同变量分开。
提前谢谢
答案 0 :(得分:0)
根据我的经验,我使用绝对值来增加负数的大小。
就我而言,数据集非常均衡,值越远离零,可视化就越重要。所以,我决定根据它们的值(如你所做的那样)为圆圈着色并设置它们的大小以定义它们的重要性。
在您的情况下,您只需要设置参数大小如下:
size= part1_loc['diff2018'].abs()
请注意,此解决方案对我的目的来说是最佳的,这对于接近于零的值并不重要。相反,如果你不希望它们太小,你需要设置一个最小的大小(可能有一个列表理解?)。