我正在使用plotly 来创建一些绘图。我没有修改 y 轴范围,但我不喜欢图表显示 y 轴的方式。在附图中,图表 y 轴数字从 25 到 40,但我的数据略高于 40 且低于 25。是否有一个选项可以强制 y 轴始终高于我的最小值和最大值?另外,y 轴是否可以从边缘开始? (以紫色突出显示)
感谢您的宝贵时间!
编辑: 正如评论中所要求的,我在下面添加了我的代码:
fig= go.Figure()
fig.update_layout(
template="simple_white",
font=_a_font,
height=400,
legend=dict(
orientation="h",
yanchor="bottom",
y=1.02,
xanchor="left",
x=0,
font=dict(size=16),
itemclick=False,
itemdoubleclick=False,
),
)
fig.update_layout(xaxis=dict(range=x_range, mirror=True, tickmode='linear', tick0=0,dtick=1))
fig.update_yaxes(showgrid=True,mirror=True)
fig.add_trace(go.Scatter(x=sub_x_data,
y=y,
mode="lines+markers",
name=legend_name,
line=dict(color=get_driver_color(legend_name)),
textposition="bottom center",
text = h_data,
hoverinfo="text"))
查看您的代码会很有帮助,因为此图表看起来不像 Plotly 中的默认样式图表。
话虽如此,您应该能够手动设置范围,并指定第一个刻度的位置:
fig.update_yaxes(range=[20, 45], tick0=0)
您可以设置 y 轴的范围来计算 y 数据的最小值和最大值,然后获取所选 dtick 的最小和最大值(dtick 是刻度的每个刻度的分隔数)例如:
var miny = Math.min.apply(Math, y);
var maxy = Math.max.apply(Math, y);
var dtick = 10;
miny = miny-(miny % dtick);
maxy = maxy + dtick-(maxy % dtick);
var layout= {
yaxis:{
dtick:dtick,
range:[miny,maxy]
}
}
这会将比例的最大值和最小值设置为高于和低于数据集的最小值和最大值,除非这些值中的任何一个都可以被“dtick”数字整除。如果您的 y 数据的较高值为 24 并且您的 dtick 为 10,那么它将把您的 y 轴的最大值设置为 30,如果您的 dtick 为 5,它将把最大值设置为 25。