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

#python #plotly #data-visualization #plotly-python

Вопрос:

Мне нужно сделать простую диаграмму рассеяния на графике, но я сталкиваюсь с некоторыми проблемами форматирования. Вот код:

 import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({'x':[54,44,43,43,63,55,59],'y':[1259305,1295003,1888391,2000000,1500001,1123433,1459330]})

fig = px.scatter(x=df['x'], y=df['y'])
fig.update_layout(
    autosize=False,
    xaxis = dict(
        tickmode = 'array',
        tickvals = [0, 50, 100]
    ),
    yaxis = dict(
        tickmode = 'array',
        tickvals = [df['y'].min(),df['y'].median(),df['y'].max()]))
fig.show()
 

Вот что он показывает:

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

Мне нужно, чтобы оси и линии сетки были равномерно распределены в соответствии со спецификациями, которые я предоставил для оси x и оси y, а не автоматически корректировались на основе распределения значений в данных.

Кто-нибудь, пожалуйста, может мне помочь?

Большое спасибо.

РЕДАКТИРОВАТЬ: Я хотел бы воспроизвести этот график matplotlib в графическом виде:

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

Ответ №1:

Чтобы указать индивидуально, пожалуйста, обратитесь к следующей ссылке для получения подробной информации о настройках. Я предполагаю, что вы хотите отобразить его как обычно, поэтому я отвечу.

 fig = px.scatter(x=df['x'], y=df['y'])
fig.update_layout(
    autosize=False,
    xaxis = dict(
        tickmode = 'array',
        tickvals = [0, 50, 100]
    ),
    yaxis = dict(
        tickmode = 'array',
        tickvals = [df['y'].min(),df['y'].median(),df['y'].max()]),
    yaxis_tickformat=' ')
fig.show()
 

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

 yaxis_tickformat='g'
 

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

 x xais tick customize

    xaxis = dict(
        range=[0,100], # update
        tickmode = 'array',
        tickvals = [0, 50, 100],
    ),
 

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

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

1. Если вы хотите отобразить его с запятой, вы можете сделать это так. yaxis_tickformat=',' Если мой ответ поможет вам, пожалуйста, установите флажок, чтобы принять и вставить свой ответ.

2. Но вы видите, какие неровные коробки? Это почему? Я хочу, чтобы все квадраты были одинакового размера и чтобы все 3 галочки тоже отображались на оси x.

3. Вы указываете минимальное, среднее и максимальное значения для оси y, поэтому медиана не всегда является серединой. Вы можете заменить его средним значением.

4. Когда я использую тот же код в matplotlib, я получаю результат, который ищу. Я собираюсь добавить его на скриншоты выше. Можете ли вы показать мне, как воспроизвести это в сюжете?

5. обновлен код и график