所以我尝试了你的代码并且能够复制这个问题。
原因:
造成这种情况的原因是,如果您查看左上图的 y 轴,您会看到有 3 个值[0, 10, 20]
,因此10
每个值之间存在 , 的差异。因此,当您将范围设置为 时[0, 25]
,不满足 的差异10
,因此我们无法在 y 轴中看到25
。
如果我们查看左下 x 轴上的图表,我们可以看到该值30
服从10
每个值之间的 , 之差。因此,我们能够30
在 yaxis 中看到!
解决方案:
如果您查看此处找到的 plotly 文档,我们可以使用对象的特定属性yaxis
来设置每个刻度之间的增量,称为dtick
,plotly 将其定义为:
PS:个人感谢马克西米利安彼得斯帮助找到解决方案!!!!
dtick(数字或分类坐标字符串)
设置此轴上刻度之间的步长。与 一起使用tick0
。必须是正数,或可用于“日志”和“日期”轴的特殊字符串。如果轴type
是“log”,则每 10^(n"dtick) 设置一次刻度,其中 n 是刻度数。例如,要将刻度标记设置为 1、10、100、1000,... 将 dtick 设置为1. 将刻度线设置为 1, 100, 10000, ... 将 dtick 设置为 2. 将刻度线设置为 1, 5, 25, 125, 625, 3125, ... 将 dtick 设置为 log_10(5),或0.69897000433。“log”有几个特殊值;“L”,其中f
是一个正数,给出线性间隔的刻度值(但不是位置)。例如tick0
= 0.1,dtick
= "L0.5" 将在 0.1、0.6、1.1、1.6 等处放置刻度。要显示 10 的幂以及介于两者之间的小数字,请使用 "D1"(所有数字)或 "D2"(仅 2 和 5)。tick0
“D1”和“D2”被忽略。如果轴type
是“日期”,那么您必须将时间转换为毫秒。例如,要将刻度之间的间隔设置为一天,请设置dtick
为 86400000.0。"date" 也有特殊值 "M" 给出了间隔数月的刻度。n
必须是正整数。要在每三个月的 15 日设置刻度,请设置tick0
为“2000-01-15”和dtick
“M3”。要设置每 4 年的刻度,设置dtick
为“M48”
因此,当我们设置dtick
as5
和 range as时,[0,25]
我们将得到预期的结果!
请试用以下代码,如果您的问题完全解决,请告诉我!
import pandas as pd
import plotly.offline as py_offline
import plotly.graph_objs as go
py_offline.init_notebook_mode()
from plotly import tools
fig = tools.make_subplots(rows=2, cols=2, subplot_titles=['A', 'B'], shared_xaxes=False, shared_yaxes=True)
data = [[10, 4, 15, 20.5], [3, 12, 22.2], [6.5, 12, 26.2], [18, 4.2, 22.2]]
traces = [go.Bar(x=['Type A', 'Type B', 'Type C'], y=d) for d in data]
fig.append_trace(traces[0], 1, 1)
fig.append_trace(traces[1], 1, 2)
fig.append_trace(traces[2], 2, 1)
fig.append_trace(traces[3], 2, 2)
fig['layout']['yaxis1'].update(title='', range=[0, 25], dtick=5, autorange=False)
fig['layout']['yaxis2'].update(title='', range=[0, 30], autorange=False)
py_offline.iplot(fig)