Как установить диапазон оси Y на графике Plotly? - PullRequest
1 голос
/ 16 апреля 2019

У меня есть следующий код для создания линейного графика с помощью Plotly. Как я могу установить диапазон оси Y, чтобы он всегда был в [0; 10]

layout = go.Layout(
        title=go.layout.Title(
            text="Test",
            xref='paper',
            x=0
        ),
        xaxis=go.layout.XAxis(
            tickmode='linear',
            tickfont=dict(
                size=10
            ),
            title=go.layout.xaxis.Title(
                font=dict(
                    size=14,
                    color='#7f7f7f'
                )
            )
        ),
        yaxis=go.layout.YAxis(
            title=go.layout.yaxis.Title(
                text=y,
                font=dict(
                    size=14,
                    color='#7f7f7f'
                )
            )
        )
    )

    data = [go.Scatter(x=x1, y=y1)]

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Использование layout = go.Layout(yaxis=dict(range=[fromValue, toValue]):


Участок:

enter image description here

Полный код для ноутбука Jupyter:

# imports
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import pandas as pd
import plotly.graph_objs as go
import numpy as np

# setup
init_notebook_mode(connected=True)

# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))

# line
trace = go.Scatter(
    x=x,
    y=y,
)

# layout
layout = go.Layout(yaxis=dict(range=[-4,4])
)

# Plot
fig = go.Figure(data=[trace], layout=layout)
iplot(fig)

Некоторые важные детали:

С помощью этой настройки вы можете легко добавить название оси Y, например:

# layout
layout = go.Layout(yaxis=dict(range=[-4,4]), title='y Axis')
)

Это немного более сложно, если вы хотите отформатировать этот заголовок дальше. Я считаю, что проще всего добавить еще один элемент с title = go.layout.yaxis.Title(text='y Axis', font=dict(size=14, color='#7f7f7f'). Пока вы делаете это правильно, вы не должны испытывать ситуацию в своем комментарии выше:

Спасибо. Я попробовал это. Но тогда у меня есть 2 определения яксис в Макет: yaxis = dict (range = [0, 10]) и yaxis = go.layout.YAxis. Следовательно появляется ошибка.

Взгляните на это:

Участок:

enter image description here

Полный код с форматированием текста по оси Y:

# imports
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import pandas as pd
import plotly.graph_objs as go
import numpy as np

# setup
init_notebook_mode(connected=True)

# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))

# line
trace = go.Scatter(
    x=x,
    y=y,
)

# layout
layout = go.Layout(
    yaxis=dict(range=[-4,4],
    title = go.layout.yaxis.Title(text='y Axis', font=dict(size=14, color='#7f7f7f')))
)

# Plot
fig = go.Figure(data=[trace], layout=layout)
iplot(fig)
0 голосов
/ 16 апреля 2019

Если я вас правильно понял, вы хотите ограничить диапазон оси Y.Вы можете передать dict в ключевом аргументе yaxis.Это может быть что-то вроде go.Layout(yaxis=dict(range=[0, 10])) Надеюсь, это поможет вам.

...