Plotly, такой же масштаб для оси x и y
Я использую plotly для python, и я не могу установить x
и y
ось, чтобы они могли иметь одинаковый масштаб:
вот мой макет:
layout = Layout(
xaxis=XAxis(
range=[-150, 150],
showgrid=True,
zeroline=True,
showline=True,
gridcolor='#bdbdbd',
gridwidth=2,
zerolinecolor='#969696',
zerolinewidth=4,
linecolor='#636363',
linewidth=6
),
yaxis=YAxis(
range=[-150,150],
showgrid=True,
zeroline=True,
showline=True,
gridcolor='#bdbdbd',
gridwidth=2,
zerolinecolor='#969696',
zerolinewidth=4,
linecolor='#636363',
linewidth=6
)
)
и тогда я получаю что-то вроде этого!
почему масштаб отличается для x и y? это повлияет на мою визуализацию.
как я могу получить сетку с квадратными ячейками?
3 ответов
вы можете назначить одну длину высота и ширина в свой макет. Вот пример:
layout = Layout(
xaxis=XAxis(
range=[-150, 150],
showgrid=True,
zeroline=True,
showline=True,
gridcolor='#bdbdbd',
gridwidth=2,
zerolinecolor='#969696',
zerolinewidth=4,
linecolor='#636363',
linewidth=6
),
yaxis=YAxis(
range=[-150,150],
showgrid=True,
zeroline=True,
showline=True,
gridcolor='#bdbdbd',
gridwidth=2,
zerolinecolor='#969696',
zerolinewidth=4,
linecolor='#636363',
linewidth=6
),
height=600,
width=600,
)
наконец, эта функция реализуется.
layout = go.Layout(yaxis=dict(scaleanchor="x", scaleratio=1))
см. пример здесь https://plot.ly/python/axes/#fixed-ratio-axes.
@NEDA ответ работает только для равных диапазонов как на x, так и на y-что редко бывает. Кажется, это то, о чем просят многие люди, что-то вроде оси matplotlib ("equal"). См.https://github.com/plotly/plotly.py/issues/70
на данный момент я использую множитель для обоих диапазонов отдельно - по существу, определяя длину каждой единицы длины на каждой оси.
height=(yMax - yMin) * mul
width= (xMax - xMin) * mul
даже при этом сетка не является идеальным квадратом %100..