Plotly极坐标图:坐标轴与背景颜色设置问题
Plotly极坐标图0度轴线过粗问题解决方法
你遇到的0度方向线条过粗问题,本质是径向轴(radialaxis)的轴线和角轴(angularaxis)的0度网格线叠加导致的——两者在0度位置重合,线条宽度相加,视觉上就比其他线条更粗。
两种解决方法:
方法1:关闭径向轴的轴线显示
径向轴的轴线和角轴0度网格线功能重复,直接关闭径向轴的轴线即可避免叠加:
修改radialaxis配置中的showline为False:
radialaxis = dict( side = "counterclockwise", showline = False, # 关闭径向轴轴线 linewidth = 2, gridcolor = "black", gridwidth = 2, )
方法2:统一径向轴与角轴的线条宽度
如果需要保留径向轴的轴线,将两者的linewidth设为相同值,叠加后粗细会保持一致:
比如都设为3:
angularaxis = dict( linewidth = 3, showline=True, linecolor='black', gridcolor = "black" ), radialaxis = dict( side = "counterclockwise", showline = True, linewidth = 3, # 和角轴linewidth保持一致 gridcolor = "black", gridwidth = 2, )
修改后的完整代码(以方法1为例):
import plotly.graph_objects as go import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/hobbs-pearson-trials.csv") fig = go.Figure() fig.add_trace(go.Scatterpolargl( r = df.trial_1_r, theta = df.trial_1_theta, name = "Trial 1", marker=dict(size=10, color="mediumseagreen") )) # Common parameters for all traces fig.update_traces(mode="markers", marker=dict(line_color='black', opacity=0.7)) fig.update_layout( title = "", font_size = 15, showlegend = False, polar = dict( bgcolor = "rgb(223, 223, 223)", angularaxis = dict( linewidth = 3, showline=True, linecolor='black', gridcolor = "black" ), radialaxis = dict( side = "counterclockwise", showline = False, # 关闭径向轴轴线 linewidth = 2, gridcolor = "black", gridwidth = 2, ) ), paper_bgcolor = "white" ) fig.show() fig.write_image("plotlyPolar.svg", scale=2) fig.write_image("plotlyPolar.jpg", scale=3)
内容的提问来源于stack exchange,提问作者Pugl
相关产品推荐
相关产品推荐

