使用ax对象将matplotlib图的x个标签更改为特定单词

问题描述 投票:0回答:1

提供以下数据:

mock_data_x = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]
mock_data_y = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
mock_data_val = [
    "a",
    "b",
    "c",
    "d",
    "e",
    "d",
    "e",
    "a",
    "b",
    "c",
    "d",
    "a",
    "b",
    "e",
    "c",
]
df_mock = pd.DataFrame(dict(x=mock_data_x, y=mock_data_y, v=mock_data_val,))

其外观为:

    x  y  v
0   1  1  a
1   1  2  b
2   1  3  c
3   1  4  d
4   1  5  e
5   2  1  d
6   2  2  e
7   2  3  a
8   2  4  b
9   2  5  c
10  3  1  d
11  3  2  a
12  3  3  b
13  3  4  e
14  3  5  c

我可以创建以下情节:

fig, ax = plt.subplots(figsize=(8, 5))

x_axis_labels = ["one", "two", "three"]

values = df_mock["v"].unique()
for val in values:
    dt = df_mock[df_mock["v"].eq(val)]
    ax.scatter(dt["x"], dt["y"])
    ax.plot(dt["x"], dt["y"])

positions = [1, 2, 3]
labels = ["r", "q"]
_ = plt.xticks(positions, x_axis_labels)

外观为:

enter image description here

我觉得好像应该替代该行

_ = plt.xticks(positions, x_axis_labels)

实际上使用ax对象而不是plt的对象。

我看过dir(ax)dir(ax.xaxis),但我不清楚应该使用它来实现这一目标。

python matplotlib plot data-visualization
1个回答
0
投票
ax的等效项是:

ax.set_xticks(positions) ax.set_xticklabels(x_axis_labels)

您会得到几乎相同的情节。
© www.soinside.com 2019 - 2024. All rights reserved.