Função Set_xticklabels Seaborn
Este artigo irá apresentar como controlar os rótulos de escala em ambos os eixos.
Por exemplo, observe o problema com o gráfico a seguir.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Date": [
"01012019",
"01022019",
"01032019",
"01042019",
"01052019",
"01062019",
"01072019",
"01082019",
],
"Price": [77, 76, 68, 70, 78, 79, 74, 75],
}
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")
plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
Na figura acima, datas inteiras são plotadas no eixo x. Mas tudo está sobreposto e é difícil de ler.
Podemos usar a função set_xticklabels()
para definir rótulos de escala personalizados para o eixo x. Um gráfico de origem marinha retorna um objeto do tipo de instância de eixos matplotlib. Podemos usar esta função neste objeto.
Por exemplo, podemos passar os rótulos como nomes de meses, conforme mostrado abaixo no problema mencionado acima.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Date": [
"01012019",
"01022019",
"01032019",
"01042019",
"01052019",
"01062019",
"01072019",
"01082019",
],
"Price": [77, 76, 68, 70, 78, 79, 74, 75],
}
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")
plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
ax.set_xticklabels(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"])
Também podemos realizar pequenas personalizações no resultado final. Podemos usar o parâmetro rotation
para girar os rótulos finais do tick em algum grau ou alterar o tamanho da fonte usando o parâmetro size
.
Se quisermos usar esses parâmetros nos rótulos de escala padrão, podemos usar a função get_xticklabels()
. Ele retorna a lista de rótulos de escala padrão do gráfico. Podemos usar esta função quando quisermos personalizar os rótulos de escala padrão usando os parâmetros rotation
ou size
.
Verifique o código a seguir para ver como usar esta função.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Date": [
"01012019",
"01022019",
"01032019",
"01042019",
"01052019",
"01062019",
"01072019",
"01082019",
],
"Price": [77, 76, 68, 70, 78, 79, 74, 75],
}
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")
plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
ax.set_xticklabels(ax.get_xticklabels(), rotation=30, size=10)
Da mesma forma, podemos executar as funções no eixo y usando as funções set_yticklabels()
e get_yticklabels()
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn