用于步骤图的数据框中的 Python 重新排序级别

标签 python dataframe matplotlib

我绘制了一个步骤图,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()

这是我得到的情节:

enter image description here

但我想要的是 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()

enter image description here

关于用于步骤图的数据框中的 Python 重新排序级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636508/

相关文章:

python - 使用嵌套字典列表过滤数据框

python - 排名线图定制

python - 创建一个 fiddle 图的正确方法是什么,其中一把 fiddle 按色调分开?

python - 如何在网格中排列 4 个 Seaborn 图(Python)?

python - TensorFlow 急切模式 : How to restore a model from a checkpoint?

python - Pandas 在另一个表的范围内查找值

python - 创建一个以特定斜率改变方程的函数,可用于 curve_fit

python - Pandas :有条件地聚合连续行

python - limits.conf 文件有 644 权限时,access() 返回无可写权限

python - 奇怪的日期格式为 YY-mm-dd 中的部分列和 YY-dd-mm 中的其余列