Вы можете ускорить свою собственную цветовую шкалу в go.Figure()
, используя:
colorscale=[[0, "rgb(255,0,0)"],
[limit, "rgb(255,255,51)"],
[1, "rgb(0,204,0)"]]
Вы не можете указать интервал напрямую, как вам бы того хотелось, поскольку шкалы основаны на процентилях базовой серии.Но вы можете сопоставить ваш limit=1
с вашими данными, используя scipy.stats.percentileofscore
, и разделить ваш набор данных на основании этого.Ниже приведен график с воспроизводимым кодом, основанный на примере в plot.ly / python / choropleth-maps .Я выбрал серию от 0 до 3 вместо ваших соотношений, используя np.random.uniform
, и добавил ее к данным, представленным в хороплетовой ссылке.Сюжет подготовлен в Jupyterlab.
Участок:
Код:
from plotly import graph_objs as go
import numpy as np
import os
from plotly.subplots import make_subplots
import pandas as pd
import scipy
# Load data frame and tidy it.
import pandas as pd
np.random.seed(123)
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_us_ag_exports.csv')
dfx = pd.DataFrame(np.random.uniform(-2,2,size=(50, 1)), columns=['RND'])
dfc = pd.concat([df,dfx], axis = 1)
limit = scipy.stats.percentileofscore(dfc['RND'], 1)
high = dfc['RND'].max()
low = dfc['RND'].min()
limit = limit/100
fig = go.Figure(data=go.Choropleth(
locations=dfc['code'], # Spatial coordinates
z = dfc['RND'].astype(float), # Data to be color-coded
locationmode = 'USA-states', # set of locations match entries in `locations`
colorscale=[[0, "rgb(255,0,0)"],
[limit, "rgb(255,255,51)"],
[1, "rgb(0,204,0)"]],
colorbar_title = "Millions USD",
))
fig.update_layout(
title_text = '2011 US Agriculture Exports by State',
geo_scope='usa', # limite map scope to USA
)
fig.show()
Надеюсь, это близко к тому, что вы искали.Если нет, не стесняйтесь, дайте мне знать.Вам также следует взглянуть на приведенные ниже ресурсы, чтобы настроить свой код дальше.
Полезные ресурсы: