Итак, я попробовал ваш код и смог воспроизвести проблему.
Причина:
Причина этого в том, что если вы посмотрите на верхнююПо оси Y на левом графике видно, что есть 3 значения [0, 10, 20]
, поэтому разница между значениями составляет 10
.поэтому, когда вы устанавливаете диапазон как [0, 25]
, разница в 10
не встречается, следовательно, мы не можем видеть 25
в яси.
Если мы посмотрим на график внизу слеваxaxis, мы можем видеть, что значение 30
подчиняется разнице 10
между каждым из значений.Таким образом, мы можем видеть 30
в яксисе!
Решение:
Если вы посмотрите на документацию, найденную здесь ,мы можем использовать конкретное свойство объекта yaxis
для установки приращения между каждым из тиков, называемое dtick
, графически определяющее его как:
PS: личное спасибо Максимилиану Петерсу для помощи в поиске решения !!!!
dtick (число или категориальная строка координат)
Устанавливает промежуточные отметки по этой оси.Используйте с tick0
.Должно быть положительным числом или специальными строками, доступными для осей «log» и «date».Если ось 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
как 5
и диапазон как [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)