Как я могу перемещать / сдвигать ось Y на графике? - PullRequest
0 голосов
/ 02 апреля 2019

Скажите, у меня есть следующий сюжет:

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go

trace1 = go.Scatter(x=[1,2,3], y=[4,5,6], marker={'color': 'red', 'symbol': 104, 'size': 10}, 
                    mode="markers+lines",  text=["one","two","three"], name='1st Trace')
data=go.Data([trace1])
layout=go.Layout(xaxis={'title':'x1', 'showline':True}, yaxis={'title':'y1', 'showline':True}, height=380, width=380)
figure1=go.Figure(data=data,layout=layout)
init_notebook_mode(connected=True)
iplot(figure1, show_link=False)

enter image description here

Я хочу увеличить x-тики на 1, но при этом ось y также перемещается на 1 единицу вправо (то есть ось x теперь начинается с 2 вместо 1):

figure1['data'][0]['x'] = (2,3,4)
iplot(figure1)

enter image description here

Я хочу сохранить исходный макет оси (т. Е. Я все еще хочу, чтобы ось x начиналась с 1, а не с 2, хотя я увеличивал значения по оси x). Я попытался добавить tickvals и ticktext к параметру xaxis в layout, но, похоже, это не дает никакого эффекта:

figure1['layout'] = {'xaxis':{'title':'x2', 
                              'tickvals':[0,1,2,3,4,5], 
                              'ticktext':[0,1,2,3,4,5],
                              'showline':True
                             }, 
                     'yaxis':{'title':'y1', 'showline':True},
                     'height':380,
                     'width':380
                    }

iplot(figure1)

enter image description here

Я также пытался использовать tickmode='linear' и ticks='outside', но они также не имеют никакого эффекта.

Как мне этого добиться?

1 Ответ

0 голосов
/ 02 апреля 2019

Вы можете сделать это, вручную установив диапазон оси x:

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go

trace1 = go.Scatter(x=[1,2,3], y=[4,5,6], 
                    marker={'color': 'red', 'symbol': 104, 'size': 10}, 
                    mode="markers+lines",  
                    text=["one","two","three"], 
                    name='1st Trace')
data = go.Data([trace1])
layout = go.Layout(xaxis = {'range': [0.75,4.25],
                            'title':'x1', 
                            'showline':True}, 
                   yaxis = {'title':'y1', 
                            'showline':True}, 
                   height=380, width=380)

figure1 = go.Figure(data=data, layout=layout)
figure1['data'][0]['x'] = (2,3,4)
plot(figure1)

Plot with fixed x axis range

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...