1
resposta

Nomeando os eixos

Olá, possuo duas dúvidas a respeito da nomeação dos eixos:

1 - É possível passar o nome dos eixos já na chamada do método go.Scatter3d()? Ou só é possível através do update_layout()?

2 - Como fazer isso para os gráficos 2D? Intuitivamente eu usei o update_layout() nos gráficos anteriores (os 2D), porém sem o valor para z, claro. No entanto, deu erro. São maneiras diferentes de nomear os eixos nos gráficos 2D e 3D? E, novamente, é possível passar o nome dos eixos diretamente no go.Scatter() nos gráficos 2D também?

Obrigado!

1 resposta

Olá, Pedro! Tudo bem?

Em relação ao primeiro ponto apresentado por você, dei uma olhada nas documentação do graph_objects (que é o que o instrutor faz a importação em import plotly.graph_objects as go) e não há forma de nomear os eixos utilizando o Scatter3d, seria necessário a utilização do método update_layout(). Uma maneira de contornar isso e nomear os eixos na própria chamada do método é fazendo uso do método scatter_3d da biblioteca plotly.express, da seguinte forma:

import plotly.express as px

fig = px.scatter_3d(df, x='Intensidade_de_cor', y='Alcool', z='Proline', title='Gráfico 3D - clusterização', color = labels,
                    labels={"Intensidade_de_cor": "Intensidade de cor",
                            "Proline": "Eixo z"})
fig.show()

Obs: Renomeei para eixo z para você observar que é possível alterar qualquer um dos eixos em labels.

Em relação ao segundo ponto levantado por você, é possível nomear os eixos para os gráficos 2D com o update_layout(), isso pode ser realizado da seguinte forma:

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Scatter(x=df['Intensidade_de_cor'], y=df['Alcool'], mode='markers', marker=dict(color = labels.astype(float)), text = labels))

fig.update_layout(
    title="Clusterizando dados",
    xaxis_title="Intensidade de cor",
    yaxis_title="Alcool"
)

E assim como no Scatter3d, observamos na documentação que não há forma de alterar o nome dos eixos diretamente no método, é necessário fazer uso do método update_layout. Para contornar isso podemos novamente recorrer a biblioteca plotly.express utilizando o método scatter. Um exemplo de utilização é mostrado abaixo:

import plotly.express as px

fig = px.scatter(df, x='Intensidade_de_cor', y='Alcool', title='clusterização', color=labels,
                 labels={"Intensidade_de_cor": "Intensidade de cor"})

fig.show()

Para entender um pouco mais sobre a diferença de utilizar plotly.graph_objects e plotly.express recomendo a leitura deste link. E como sugestão de conteúdo extra, deixo esses dois links:

  • Link 1: Configurando a fonte, título, entradas de legenda e títulos de eixo em Python
  • Link 2: Como formatar eixos de plotagens 3D em Python com Plotly.

Todas as documentações e leituras complementares estão em inglês, então caso não possua tanta familiaridade com o idioma, recomendo a instalação de alguma extensão, como o google tradutor, para auxilia-lo na tradução e melhor entendimento.

Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.

:)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!