Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用pywaffle在python中创建带有图案填充的华夫格图表_Python_Matplotlib_Plot_Waffle Chart - Fatal编程技术网

使用pywaffle在python中创建带有图案填充的华夫格图表

使用pywaffle在python中创建带有图案填充的华夫格图表,python,matplotlib,plot,waffle-chart,Python,Matplotlib,Plot,Waffle Chart,我想为下面的数据框创建一个灰色的华夫格图表 data = pd.DataFrame({'Category': ['a', 'b', 'c', 'd'], 'no_occurrence' : [594, 5, 10, 9]}) 以下是我迄今为止所做的基于 由于灰色的形状很难区分,我想填充最后一个类别(在图和图例中),但我不知道如何在颜色中添加图案填充。我有一个具有相同类别的条形图,其中添加了图案填充,因此我希望保持一致。当在华夫格图表中使用图标作为元素时,它们在内部表示为带有特殊字体的文本对象

我想为下面的数据框创建一个灰色的华夫格图表

data = pd.DataFrame({'Category': ['a', 'b', 'c', 'd'], 'no_occurrence' : [594, 5, 10, 9]})
以下是我迄今为止所做的基于


由于灰色的形状很难区分,我想填充最后一个类别(在图和图例中),但我不知道如何在颜色中添加图案填充。我有一个具有相同类别的条形图,其中添加了图案填充,因此我希望保持一致。

当在华夫格图表中使用图标作为元素时,它们在内部表示为带有特殊字体的文本对象

使用
patheffects
,可以将图案填充添加到绘图中的图标中,如图例中所示

因为你没有提供玩具数据,也没有图片,所以我编造了一些数据来展示这些想法。由于我的图例图标比绘图中的图标小,因此我对图例使用了更密集的图案填充

导入matplotlib.pyplot作为plt
从matplotlib导入patheffects
将numpy作为np导入
从Py华夫格导入华夫格
值=[5,14,17,18]
图=plt.figure(
FigureClass=华夫饼干,
行=5,
颜色=(‘浅灰色’、‘黑色’、‘暗灰色’、‘浅灰色’),
值=值,
标签=[*'abcd'],
图标class='sticky-note',
图标大小=60,
figsize=(12,8),
icon_legend=True,
图例={'loc':'lower left','bbox_to_anchor':(0,-0.4),'ncol':4,'fontsize':15,
'facecolor':'white','edgecolor':'black'})
对于图中的t.ax.文本[-值[-1]:]:
t、 设置路径效果([patheffects.PathPatchEffect(hatch='xxx',fc='lightgrey',ec='white')))\color='lightgrey'))
图ax.legend.legendHandles[-1]。设置路径效果(
[patheffects.PathPatchEffect(图案填充='xxxxx',fc='浅灰色',ec='白色'))
图1紧_布局图()
plt.show()

谢谢你@JohanC!我不知道
路径效果
。这解决了我的问题。数据隐藏在数据框中。我本来可以说得更清楚的,对不起。
import matplotlib.pyplot as plt 
from pywaffle import Waffle
fig = plt.figure(
    FigureClass=Waffle, 
    rows=5,
    colors = ('lightgrey', 'black', 'darkgrey', 'lightgrey'),
    values=list(data['no_occurrence']/4),
    labels=list(data['Category']),
    icons = 'sticky-note', 
    icon_size = 11,
    figsize=(12, 8),
    icon_legend = True,
    legend={'loc': 'lower left','bbox_to_anchor': (0, -0.4), 'ncol': len(data), 'fontsize': 8}    
)