我绘制了一个阶梯图,y 刻度的顺序不是我想要的。我怎样才能重新排列它们?
以下是代码:
import numpy as np
import matplotlib.pyplot as plt
df = {'col1': [1, 2, 3, 4,5,6], 'col2': ['a', 'a', 'b', 'c', 'a','b']}
dat = pd.DataFrame(data = df)
plt.step(dat['col1'], dat['col2'])
plt.show()
这是我得到的情节:
但我想要的是 y 刻度的顺序是 [b, c, a] 而不是 [a,b,c]。我怎样才能做到这一点?
谢谢,
LT
最佳答案
您可以混合使用 pd.Series 作为映射器和 ax.set_yticks:
import numpy as np
import matplotlib.pyplot as plt
df = {'col1': [1, 2, 3, 4,5,6], 'col2': ['a', 'a', 'b', 'c', 'a','b']}
dat = pd.DataFrame(data = df)
# Create a mapper from character to rank with the desired order:
order = ['b', 'c', 'a']
rank = pd.Series(range(len(order)), index=order)
fig, ax = plt.subplots()
ax.step(dat['col1'], rank.loc[dat['col2']])
ax.set_yticks(rank.values);
ax.set_yticklabels(rank.index)
关于用于步进图的数据框中的 Python 重新排序级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55636508/