Rotate Axis Tick Labels of Seaborn Plots
-
Use a função
set_xticklabels()
para girar rótulos em eixos marítimos -
Use a função
xticks()
para girar rótulos em eixos marítimos -
Use a função
setp()
para girar os rótulos nos eixos Seaborn
Seaborn oferece muitas personalizações para a figura final. Uma dessas personalizações, pequena, mas essencial, é que podemos controlar os rótulos dos ticks em ambos os eixos.
Por exemplo, preste atenção ao 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)
No código acima, traçamos um gráfico para os dados da série temporal do preço de um produto. Como você pode ver, datas inteiras são plotadas no eixo x. Por isso, tudo se sobrepõe e é difícil de ler.
Para tais situações, podemos girar os rótulos de escala no eixo.
Neste tutorial, aprenderemos como girar esses rótulos de carrapatos em plotagens marítimas.
Use a função set_xticklabels()
para girar rótulos em eixos marítimos
A função set_xticklabels()
define os valores para os rótulos das marcas no eixo x. Podemos usá-lo para girar os rótulos. No entanto, esta função precisa de alguns valores de rótulo para usar a função get_xticklabels()
que retorna os rótulos padrão e os gira usando o parâmetro rotation
.
O código a seguir demonstra seu uso.
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)
Use a função xticks()
para girar rótulos em eixos marítimos
O parâmetro rotation
na função matplotlib.pyplot.xticks()
também pode fazer isso. Não precisamos passar nenhum rótulo e podemos usar diretamente o parâmetro nesta função.
Por exemplo,
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)
plt.xticks(rotation=45)
Use a função setp()
para girar os rótulos nos eixos Seaborn
Visto que a maioria dos gráficos marítimos retornam um objeto de eixos matplotlib, podemos usar a função setp()
desta biblioteca. Pegaremos os valores do marcador de escala usando a função xtick()
e girá-los usando o parâmetro rotation
da função setp()
.
Veja o seguinte código.
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)
locs, labels = plt.xticks()
plt.setp(labels, rotation=45)
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