python plotly创建一个与最大值和最小值相关的色阶

Posted

技术标签:

【中文标题】python plotly创建一个与最大值和最小值相关的色阶【英文标题】:python plotly create a color scale related to max and min number of value 【发布时间】:2017-10-05 23:35:16 【问题描述】:

这是一个代码,我尝试显示每个点的车速。

import plotly.plotly as py
from plotly.graph_objs import *

mapbox_access_token = 'MAPBOX API KEY'


data = Data([
    Scattermapbox(
        lat=dataframe_monday_morning['latitude'],
        lon=dataframe_monday_morning['longitude'],
        mode='markers',
        marker=Marker(
            size=5,
            color =dataframe_monday_morning['speed'],
            colorscale= 'YlOrRd',

            #opacity=0.3,
            symbol = 'circle',

        ),

    )
])
layout = Layout(
    autosize=True,
    hovermode='closest',
    width=1300,
        margin=go.Margin(
        l=0,
        r=0,
        b=0,
        t=0
        ),
    height=700,
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,#
        center=dict(
            lat=-36.7526,
            lon=174.7274
        ),
        pitch=0,
        zoom=16.2,
        style='dark',


    ),
)

fig = dict(data=data, layout=layout)
py.iplot(fig, filename='Multiple Mapbox')

但是当我尝试时

color =dataframe_monday_morning['speed']

代码选择当前数据的最小和最大速度然后给我一个图表。在数据中,一些速度数据差距非常大,所以我想在我的速度值之间创建一个色标。 (例如,如果您选择最高速度 200 公里/小时,您的其他 30 公里/小时和 90 公里/小时看起来颜色相似,但通常速度确实不同)

我的问题是如何为速度选择颜色创建比例?

编辑:

这是我编辑的数据示例。

13  1.464301e+10    2015-11-15 18:28:50 191 10051   76  -36.817540  174.750526      
14  1.464298e+10    2015-11-15 18:27:20 209 10051   48  -36.806104  174.759209      
15  1.464180e+10    2015-11-15 17:41:27 171 10051   0   -36.718553  174.713503  
16  1.464186e+10    2015-11-15 17:43:44 172 10051   25  -36.720747  174.713897  
17  1.464238e+10    2015-11-15 18:05:36 137 10051   5   -36.753691  174.728945  
18  1.464199e+10    2015-11-15 17:49:22 170 10051   0   -36.728252  174.715084  
19  1.464279e+10    2015-11-15 18:20:41 153 10051   20  -36.787389  174.752337  
20  1.464229e+10    2015-11-15 18:01:47 146 10051   16  -36.749369  174.724865  
21  1.464298e+10    2015-11-15 18:27:39 216 10051   51  -36.807940  174.757603  
22  1.464254e+10    2015-11-15 18:11:35 162 10051   36  -36.765195  174.739728  
23  1.464301e+10    2015-11-15 18:28:37 197 10051   66  -36.815369  174.751177  

【问题讨论】:

如何定义高低RGB值,然后进行线性插值? 已编辑。嘿@AnthonyKong 不是 RGB,但我尝试了 HSL 代码,因为 HSL 的第一个值是整数,因此您可以轻松声明它。 c= ['hsl('+str(dataframe_monday_morning['speed'])+',50%'+',50%)'] 但我无法嵌入我的代码 - 您能添加一些示例数据以获得独立示例吗? 嘿@MaximilianPeters 我编辑了我的问题 【参考方案1】:

不是 100% 确定我的问题是否正确,但您可以尝试添加

showscale=True,
cmax=200,
cmin=0

到您的Marker 对象以获取带有固定max 和min 值的颜色条的图表。

【讨论】:

这太酷了!我尝试了很多次,如果您的数据超出限制无关紧要,程序会为您提供限制颜色的结束。谢谢!

以上是关于python plotly创建一个与最大值和最小值相关的色阶的主要内容,如果未能解决你的问题,请参考以下文章

怎样用numpy找出数组里最大与最小值

计数排序与桶排序python实现

Matplotlib:如何仅为抽搐设置最小值和最大值

[基础] 在Python中获得字典列表中最大值与最小值

创建一个新变量,它是python中另一个变量的每周最小值/最大值

R语言使用fmsb包可视化基本雷达图(radar chart蜘蛛图spider plot)数据预处理(计算每个变量的最大值和最小值并合并到原数据集)可视化单个数据对象的雷达图