首页 > 解决方案 > matplotlib:为条分配不同的阴影

问题描述

我有一个数据框,对于每个索引,我必须绘制两个条形图(两个系列)。以下代码给出的输出为:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.randint(0,20,size=(5, 2)), columns=list('AB'))
fig, ax = plt.subplots()
ax = df.sort_values('B', ascending=True).plot.barh(rot=0,ax=ax,hatch="/")
plt.show()

在此处输入图像描述

我想为每个条分配单独的孵化。所以如果A有'/'孵化,B应该有'|'。我需要在代码中进行哪些修改?

标签: pythonpandasnumpymatplotlib

解决方案


您可以分别绘制两个条形图:

import numpy as np
import pandas as pd

from matplotlib import pyplot as plt

df = pd.DataFrame(np.random.randint(0, 20, size=(5, 2)), columns=list('AB'))
fig, ax = plt.subplots()

ax.barh(np.arange(0, len(df)), df['A'], height=0.3, hatch='/')
ax.barh(np.arange(0.3, len(df) + 0.3), df['B'], height=0.3, hatch='|')

在此处输入图像描述


推荐阅读