如何调整Plotly hexbin mapbox的单元格线宽?能否修改线条颜色?
Plotly Hexbin Mapbox 单元格线宽与线条颜色调整方案
问题描述
使用Plotly的hexbin mapbox时,能否调整单元格的线宽?查阅相关文档后未找到对应说明。若无法调整线宽,是否可以修改线条颜色?
尝试向create_hexbin_mapbox函数传入linewidth参数时触发错误,代码示例如下:
import pandas as pd import plotly.figure_factory as ff df = pd.DataFrame({ 'LAT': [-45,-44,-42,-41,-46,-44,-43,-45,-41,-45,-47], 'LON': [-70,-71,-72,-72,-73,-74,-71,-70,-72,-70,-72], }) fig = ff.create_hexbin_mapbox(data_frame = df, lat = 'LAT', lon = 'LON', nx_hexagon = 5, opacity = 0.5, labels = {'color': 'Point Count'}, linewidth = 0.5, mapbox_style = 'carto-positron', zoom = 4 ) fig.show()
报错输出:
TypeError: create_hexbin_mapbox() got an unexpected keyword argument 'linewidth'
解决方案
1. 报错原因
plotly.figure_factory.create_hexbin_mapbox的官方API并未提供linewidth参数,直接传入会触发参数不匹配的错误。
2. 线条颜色与线宽的调整方法
虽然无法在函数调用时直接设置,但可以在生成图形对象后,修改hexbin图层的属性实现需求:
- 调整线宽:修改图层的
line.width属性 - 修改线条颜色:修改图层的
line.color属性
修改后的代码示例:
import pandas as pd import plotly.figure_factory as ff df = pd.DataFrame({ 'LAT': [-45,-44,-42,-41,-46,-44,-43,-45,-41,-45,-47], 'LON': [-70,-71,-72,-72,-73,-74,-71,-70,-72,-70,-72], }) # 正常生成hexbin mapbox图形 fig = ff.create_hexbin_mapbox(data_frame = df, lat = 'LAT', lon = 'LON', nx_hexagon = 5, opacity = 0.5, labels = {'color': 'Point Count'}, mapbox_style = 'carto-positron', zoom = 4 ) # 获取hexbin图层并修改线条属性 hex_layer = fig.data[0] hex_layer.line.width = 1.0 # 设置线宽为1.0 hex_layer.line.color = '#000000' # 设置线条颜色为黑色 fig.show()
补充说明
fig.data[0]对应生成的hexbin图层,create_hexbin_mapbox默认仅生成一个图层line.width支持任意数值类型,line.color支持十六进制色值、颜色名称等标准颜色格式
内容的提问来源于stack exchange,提问作者jonboy
相关产品推荐
相关产品推荐

