1
resposta

Alterar o intervalo de datas do eixo X

Olá!

Plotei um lineplot sendo que no eixo X tenho um datetime com 24 meses e sendo que os 24 meses estão aparecendo no gráfico o que prejudica a visualização, assim: 2017-01 / 2017-02 / 2017-03 / 2017-04 / 2017-05 ...

gostaria que fossem exibidos os meses pulando de dois em dois, assim: 2017-01 / 2017-03 / 2017-05 ...

O lineplot está plotado assim:

lineplot1 = sns.lineplot(x='mes', y='vendas', data=df1)
lineplot1.figure.set_size_inches(18,6)

E o resultado está assim: lineplot imagem

1 resposta

Olá Joemir, tudo bem ? Espero que sim.

Pensei em dois caminhos para resolver o problema, o primeiro é arrumando o tipo da coluna porque assim o seaborn consegue sozinho decidir a frequência das labels, o segundo é rotacionar as labels para facilitar a leitura.

Para mudar o tipo da coluna mes para datetime, basta selecionar a coluna mes e utilizar a função pd.datetime para mudar o tipo da coluna, salvei os dados em uma nova coluna chamada data.

df1['data'] = pd.to_datetime(df1['mes'])

Depois basta plotar o gráfico com essa nova coluna:

lineplot1 = sns.lineplot(x='data', y='vendas', data=df1)
lineplot1.figure.set_size_inches(18,6)

Gráfico de linha, o eixo vertical tem o nome vendas e vai do valor 0 até o 600, e tem um intervalo de valores de 100 em 100. No eixo horizontal tem o nome de data e vai do data 2017-1 até 2019-1, e tem um intervalo de 3 em 3 meses. Temos uma reta diagonal crescente que começa na data 2019-1 e valor 0 e vai até depois da data 2018-10 no valor 600

Para rotacionar as labels do eixo X, você deve utilizar o método set_xticklabels e passar como parâmetro os dados da coluna mes e o ângulo que quer rotacionar.

lineplot1 = sns.lineplot(x='mes', y='vendas', data=df1)
lineplot1.set_xticklabels(df1['mes'], rotation=45)
lineplot1.figure.set_size_inches(18,6)

Gráfico de linha, o eixo vertical tem o nome vendas e vai do valor 0 até o 600, e tem um intervalo de valores de 100 em 100. No eixo horizontal tem o nome de mes e vai do data 2017-1 até 2019-1, e tem um intervalo mensal. Temos uma reta diagonal crescente que começa na data 2018-12 e valor 0 e vai até depois da data 2018-12 no valor 600

Espero ter ajudado e qualquer duvida não hesite em perguntar.

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