#python #python-3.x #plotly #plotly-dash
Вопрос:
Возьмите следующий пример кода:
import plotly.graph_objects as go
fig = go.Figure(data=[go.Scatter(
x=[1, 2, 3, 4], y=[10, 11, 12, 13],
text=['A<br>size: 40', 'B<br>size: 60', 'C<br>size: 80', 'D<br>size: 100'],
mode='markers',
marker=dict(
color=['rgb(93, 164, 214)', 'rgb(255, 144, 14)', 'rgb(44, 160, 101)', 'rgb(255, 65, 54)'],
size=[40, 60, 80, 100],
)
)])
fig.show()
какие результаты…
При изменении размера красного пузырька на 300
, мы получаем…
Как вы можете видеть, оси x и y были масштабированы в соответствии с новым размером маркера.
Однако мне нужно, чтобы оси оставались неизменными, и, несмотря на увеличение размера маркера, его следует обрезать.
Это необходимо, так как мой проект предполагает включение и выключение пузырьков на другом графике (через обратный вызов), и когда пузырьки включены, диаграмма меняется по ширине.
Есть идеи, как выполнить статические оси x и y и обрезать маркеры независимо от размера?
cliponaxis=True
похоже, это не дает желаемого результата.
Ниже приведен пример желаемой вырезки:
Ответ №1:
Это может быть достигнуто путем фиксации диапазона осей.
импортируйте plotly.graph_objects по ходу
fig = go.Figure(data=[go.Scatter(
x=[1, 2, 3, 4], y=[10, 11, 12, 13],
text=['A<br>size: 40', 'B<br>size: 60', 'C<br>size: 80', 'D<br>size: 100'],
mode='markers',
marker=dict(
color=['rgb(93, 164, 214)', 'rgb(255, 144, 14)', 'rgb(44, 160, 101)', 'rgb(255, 65, 54)'],
size=[40, 60, 80, 500],
), cliponaxis=True
)])
fig.update_yaxes(range=[10, 13])
fig.update_xaxes(range=[1, 4])
fig.show()