Cách xoay các nhãn đánh dấu trục x trong barplot Pandas


96

Với mã sau:

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("")

Tôi đã thực hiện âm mưu này:

nhập mô tả hình ảnh ở đây

Làm cách nào để xoay nhãn đánh dấu trục x về 0 độ?

Tôi đã thử thêm điều này nhưng không hoạt động:

plt.set_xticklabels(df.index,rotation=90)

Câu trả lời:


185

Chuyển param rot=0để xoay xticks:

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()

lô sản lượng:

nhập mô tả hình ảnh ở đây



9

Câu hỏi rõ ràng nhưng tiêu đề không chính xác như nó có thể được. Câu trả lời của tôi dành cho những người tìm cách thay đổi nhãn trục , trái ngược với nhãn đánh dấu, đó là câu trả lời được chấp nhận là về. (Tiêu đề hiện đã được sửa lại).

for ax in plt.gcf().axes:
    plt.sca(ax)
    plt.xlabel(ax.get_xlabel(), rotation=90)

7

Bạn có thể sử dụng set_xticklabels ()

ax.set_xticklabels(df['Names'], rotation=90, ha='right')

3

Những điều sau có thể hữu ích:

# 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',
)

Đây là hàm xticks[tham chiếu] với ví dụ và 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([])
    """

2

Đối với biểu đồ thanh, bạn có thể bao gồm góc mà cuối cùng bạn muốn dấu tích có được.

Ở đây tôi đang sử dụng rot=0để làm cho chúng song song với trục x.

series.plot.bar(rot=0)
plt.show()
plt.close()

Và đối với biểu đồ, nó rất giống nhau. Thay thế rotbằng xrothoặcyrot
Tom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.