我绘制了一个阶梯图,而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
答案 0 :(得分:1)
您可以使用pd.Series的混合物作为mapper和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)
答案 1 :(得分:1)