Plotly添加自定义渐变色彩带图例及离散色带转渐变问题咨询
Plotly色带问题解答
1. 自定义独立色带
可以实现和当前图表自带色带不同的独立自定义色带,无需基于现有图表数据生成。
Plotly的色带规则完全支持手动定义,你可以通过colorscale参数传入自定义的颜色映射规则,格式为[[比例值1, 色值1], [比例值2, 色值2], ...],其中比例值范围为0-1,和实际数据的取值范围无关,你可以随意配置渐变规则。如果需要完全脱离当前绘图数据添加额外的独立色带,也可以通过添加无可见元素的虚拟trace绑定自定义色带来实现。
2. 离散色带调整为渐变色带
你当前输出离散色带的核心原因是代码中传入了binning_endpoints参数,该参数的作用是将数值按指定端点分箱,每个分箱对应固定颜色,最终生成离散色标。要得到连续渐变色带,直接删除该参数即可。
如果需要自定义渐变对应的数值区间,还可以传入zmin、zmax参数指定色带覆盖的数值范围,无需适配数据本身的最大最小值。
调整后的示例代码
import plotly.figure_factory as ff import numpy as np import pandas as pd df_sample = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/laucnty16.csv') df_sample['State FIPS Code'] = df_sample['State FIPS Code'].apply(lambda x: str(x).zfill(2)) df_sample['County FIPS Code'] = df_sample['County FIPS Code'].apply(lambda x: str(x).zfill(3)) df_sample['FIPS'] = df_sample['State FIPS Code'] + df_sample['County FIPS Code'] # 此处可完全自定义颜色列表,不受数据影响 colorscale = ["#f7fbff","#ebf3fb","#deebf7","#d2e3f3","#c6dbef","#b3d2e9","#9ecae1", "#85bcdb","#6baed6","#57a0ce","#4292c6","#3082be","#2171b5","#1361a9", "#08519c","#0b4083","#08306b"] fips = df_sample['FIPS'].tolist() values = df_sample['Unemployment Rate (%)'].tolist() # 移除binning_endpoints参数,生成连续渐变色带 fig = ff.create_choropleth( fips=fips, values=values, # zmin=0, zmax=15, 可按需指定色带对应的数值区间 colorscale=colorscale, show_state_data=False, show_hover=True, centroid_marker={'opacity': 0}, asp=2.9, title='USA by Unemployment %', legend_title='% unemployed' ) fig.layout.template = None fig.write_image("fig1.png", scale=20) fig.show()
内容的提问来源于stack exchange,提问作者Mohammad Moosazadeh
相关产品推荐
相关产品推荐

