Как вы поворачиваете ось графика в Plotly?

#python #plotly

#python #plotly

Вопрос:

У меня есть следующий график, выполненный в Plotly

График

Как вы можете видеть, оси X, Y расположены традиционным образом. Как я могу повернуть ось так, чтобы X отображался вертикально, а Y — горизонтально (слева)?

(также я хотел бы изменить охват и разделение каждой оси)

Я полагаю, это должно что-то делать с элементом layout.

Мой код, если до сих пор

 layout= go.Layout(title=go.layout.Title(text=title,x=0.5),
        xaxis={'title':'x[m]'},
        yaxis={'title':'y[m]'})

    point_plot=[
            go.Scatter(x=[series[listoflabels[0]]],y=[series[listoflabels[1]]],name="V0"),
            go.Scatter(x=[series[listoflabels[2]]],y=[series[listoflabels[3]]],name="GT"),
            go.Scatter(x=[0],y=[0],name="egoCar")
            ]

    return go.Figure(data=point_plot, layout=layout)
  

Редактировать:

Чтобы сделать его воспроизводимым, я изменил код на

 layout1= go.Layout(title=go.layout.Title(text="A graph",x=0.5),
        xaxis={'title':'x[m]'},
        yaxis={'title':'y[m]'})

point_plot=[
            go.Scatter(x=[3],y=[1],name="V0"),
            go.Scatter(x=[5],y=[2],name="GT"),
            go.Scatter(x=[0],y=[0],name="egoCar")
    ]
            
go.Figure(data=point_plot, layout=layout1).show()
  

и график

введите описание изображения здесь

Комментарии:

1. Есть ли шанс, что вы могли бы изменить свой код, чтобы он был воспроизводимым? Я знаю, есть ли объект plotly graph, но также заголовок и, кто знает, что еще.

2. @hrokr Я отредактировал его до необходимого минимума.

Ответ №1:

Я не в курсе, что в Plotly есть какой-либо встроенный метод для переключения осей x и y. Однако вы можете добиться этого самостоятельно, просто переключив названия осей x и y, а затем переключив параметры x и y , которые соответствуют вашим точкам.

Затем вы можете поместить ось y (содержащую ваши координаты x) в правую часть вашего макета и изменить диапазон оси x (содержащий ваши координаты y) таким образом, чтобы начало координат находилось в нижней правой части.

 import plotly.graph_objects as go

# switch the axes titles
layout1= go.Layout(title=go.layout.Title(text="A graph",x=0.5),
        xaxis={'title':'y[m]'},
        yaxis={'title':'x[m]', 'side':'right'})

# switch the x- and y-coordinates
point_plot=[
            go.Scatter(y=[3],x=[1],name="V0"),
            go.Scatter(y=[5],x=[2],name="GT"),
            go.Scatter(y=[0],x=[0],name="egoCar")
    ]


fig = go.Figure(data=point_plot, layout=layout1)

# reverse the range of the xaxis (which contains the y values)
fig.update_xaxes(autorange="reversed")
fig.show()
  

введите описание изображения здесь

Комментарии:

1. Спасибо. Кажется, это работает. Однако у меня все еще есть проблема, и я опубликую ее как вопрос. Я был бы признателен, если бы вы могли взглянуть

2. Я пометил это как принятый ответ. Просто обратите внимание, что autorange="reversed" можно заменить на ‘autorange= [(положительное число),(отрицательное число)]`, если мы хотим задать диапазон вручную.

Ответ №2:

Дерек О выбрал то, что проще всего реализовать. Это аналог графика, где 1 км равен 0,6 мили или a, b = b, a

Второй вариант — абстрагировать данные и ваши оси. По сути, это говорит то же самое, но может быть проще для чтения, поскольку Plotly обладает уникальной способностью довольно быстро превращать понятный, хорошо структурированный Python в уродливый JS без скобок.

Третий вариант — дополнительно абстрагировать это и задать ваши оси для вас.