我绘制了一个步骤图,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
最佳答案
不幸的是,matplotlib 目前不允许预先确定轴上类别的顺序。不过,一种选择是首先以正确的顺序在轴上绘制一些东西,然后将其删除。这将固定后续真正绘图的顺序。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
order = list("bca")
dic = {'col1': [1, 2, 3, 4,5,6], 'col2': ['a', 'a', 'b', 'c', 'a','b']}
df = pd.DataFrame(dic)
sentinel, = plt.plot(np.repeat(df.col1.values[0], len(order)), order)
sentinel.remove()
plt.step(df['col1'], df['col2'])
plt.show()
关于用于步骤图的数据框中的 Python 重新排序级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636508/