我有一个非常简单的气泡图,请参见下文。我唯一需要做的就是能够获取范围(或最小值和最大值)或生成的x和y轴。
trace = go.Scatter(
x=df_test['total_points_mean'],
y=df_test['total_points_std'],
mode='markers',
text=df_test['play_maker'],
marker=dict(size=df_test['week_nunique'],
color = df_test['week_nunique'],
showscale=True)
)
layout = go.Layout(title='Scatter Plot')
fig = go.Figure(data=[trace],layout=layout)
从结果图中可以看出,x轴的最大值和最小值似乎在〜10和〜29左右,但是我需要一种方法来生成轴范围的精确值。
是否可以访问生成的轴范围?
答案 0 :(得分:8)
在python实现中无法从绘图中获取轴范围。如果仅在布局中指定了轴范围,则只能检索该范围(但实际上并不需要它)。
因此,如果您尝试print(fig.layout.xaxis.range)
,将会得到None
。
如果需要限制,则需要制作自己的限制并将其应用于布局:
xmin
,xmax
xlim = [xmin*.95, xmax*1.05]
fig.update_layout(xaxis=dict(range=[xlim[0],xlim[1]]))
现在,如果您尝试使用print(fig.layout.xaxis.range)
,将获得轴范围。
这让我很烦恼,所以我不得不更深入地研究credit goes to @Emmanuelle on the plotly forums,以确认这一现实。
答案 1 :(得分:0)
如果您无法访问输入数据,但只能访问跟踪:
x_min = min(trace.x)
x_max = max(trace.x)
如果您无权访问跟踪,但只能访问图形处理,则应该可以进行以下操作(我认为这是通常的情况):
x_mins = []
x_maxs = []
for trace_data in fig.data:
x_mins.append(min(trace_data.x))
x_maxs.append(max(trace_data.x))
x_min = min(x_mins)
x_max = max(x_maxs)
如果轴范围是自动的,我假设fig.layout.xaxis.range
是None
。
答案 2 :(得分:0)