#python #plotly
#python #графически
Вопрос:
Допустим, у меня есть следующий график:
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)
Я хочу увеличить такты x на 1, но при этом ось y также перемещается на 1 единицу вправо (т. Е. Ось x теперь начинается с 2 вместо 1):
figure1['data'][0]['x'] = (2,3,4)
iplot(figure1)
Я хочу сохранить исходную компоновку оси (т. Е. Я все еще хочу, чтобы ось 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)
Я также пытался использовать tickmode='linear'
и ticks='outside'
, но они также не имеют никакого эффекта.
Как я могу этого добиться?
Ответ №1:
Вы можете выполнить это, вручную установив диапазон оси 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)