Как повернуть метки метки по оси x в Pandas barplot
Со следующим кодом:
import matplotlib
matplotlib.style.use('ggplot')
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({ 'celltype':["foo","bar","qux","woz"], 's1':[5,9,1,7], 's2':[12,90,13,87]})
df = df[["celltype","s1","s2"]]
df.set_index(["celltype"],inplace=True)
df.plot(kind='bar',alpha=0.75)
plt.xlabel("")
Я сделал этот сюжет:
![введите описание изображения здесь]()
Как я могу повернуть метки тика по оси x до 0 градусов?
Я попытался добавить это, но не работал:
plt.set_xticklabels(df.index,rotation=90)
Ответы
Ответ 1
Пропустите параметр rot=0
, чтобы повернуть стрелки:
import matplotlib
matplotlib.style.use('ggplot')
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({ 'celltype':["foo","bar","qux","woz"], 's1':[5,9,1,7], 's2':[12,90,13,87]})
df = df[["celltype","s1","s2"]]
df.set_index(["celltype"],inplace=True)
df.plot(kind='bar',alpha=0.75, rot=0)
plt.xlabel("")
plt.show()
дает график:
![введите описание изображения здесь]()
Ответ 2
Вопрос ясен, но название не так точно, как могло бы быть. Мой ответ - для тех, кто хотел изменить метку оси axis label, в отличие от меток tick labels,, о чем и говорится в принятом ответе. (Название теперь исправлено).
for ax in plt.gcf().axes:
plt.sca(ax)
plt.xlabel(ax.get_xlabel(), rotation=90)
Ответ 3
Вы можете использовать set_xticklabels()
ax.set_xticklabels(df['Names'], rotation=90)
Ответ 4
Следующее может быть полезно:
# Valid font size are xx-small, x-small, small, medium, large, x-large, xx-large, larger, smaller, None
plt.xticks(
rotation=45,
horizontalalignment='right',
fontweight='light',
fontsize='medium',
)
Вот функция xticks
[ссылка] с примером и API
def xticks(ticks=None, labels=None, **kwargs):
"""
Get or set the current tick locations and labels of the x-axis.
Call signatures::
locs, labels = xticks() # Get locations and labels
xticks(ticks, [labels], **kwargs) # Set locations and labels
Parameters
----------
ticks : array_like
A list of positions at which ticks should be placed. You can pass an
empty list to disable xticks.
labels : array_like, optional
A list of explicit labels to place at the given *locs*.
**kwargs
:class:'.Text' properties can be used to control the appearance of
the labels.
Returns
-------
locs
An array of label locations.
labels
A list of '.Text' objects.
Notes
-----
Calling this function with no arguments (e.g. ''xticks()'') is the pyplot
equivalent of calling '~.Axes.get_xticks' and '~.Axes.get_xticklabels' on
the current axes.
Calling this function with arguments is the pyplot equivalent of calling
'~.Axes.set_xticks' and '~.Axes.set_xticklabels' on the current axes.
Examples
--------
Get the current locations and labels:
>>> locs, labels = xticks()
Set label locations:
>>> xticks(np.arange(0, 1, step=0.2))
Set text labels:
>>> xticks(np.arange(5), ('Tom', 'Dick', 'Harry', 'Sally', 'Sue'))
Set text labels and properties:
>>> xticks(np.arange(12), calendar.month_name[1:13], rotation=20)
Disable xticks:
>>> xticks([])
"""