当前位置:  开发笔记 > 编程语言 > 正文

matplotlib不均匀的组大小条形图并排

如何解决《matplotlib不均匀的组大小条形图并排》经验,为你挑选了1个好方法。

我试图绘制具有不同条形大小的数据组,并且可能具有不同的组大小.如何将属于同一组的条形图(显示为相同的颜色)分组,以便它们并排?(与此类似,除了相同的颜色应该是并排的)

width = 0.50      
groupgap=2
y1=[20,80]
y2=[60,30,10]
x1 = np.arange(len(y1))
x2 = np.arange(len(y2))+groupgap
ind = np.concatenate((x1,x2))
fig, ax = plt.subplots()
rects1 = ax.bar(x1, y1, width, color='r',  ecolor= "black",label="Gender")
rects2 = ax.bar(x2, y2, width, color='b',  ecolor= "black",label="Type")
ax.set_ylabel('Population',fontsize=14)
ax.set_xticks(ind)
ax.set_xticklabels(('Male', 'Female','Student', 'Faculty','Others'),fontsize=14)
ax.legend()

在此输入图像描述



1> ImportanceOf..:

使用类别(groupgap)之间的差距的想法确实是一种方法.你只需要添加第一组的长度:

x2 = np.arange(len(y2))+groupgap+len(y1)

这是我使用的完整示例groupgap=1:

import matplotlib.pyplot as plt
import numpy as np

width = 1      
groupgap=1
y1=[20,80]
y2=[60,30,10]
x1 = np.arange(len(y1))
x2 = np.arange(len(y2))+groupgap+len(y1)
ind = np.concatenate((x1,x2))
fig, ax = plt.subplots()
rects1 = ax.bar(x1, y1, width, color='r',  edgecolor= "black",label="Gender")
rects2 = ax.bar(x2, y2, width, color='b',  edgecolor= "black",label="Type")
ax.set_ylabel('Population',fontsize=14)
ax.set_xticks(ind)
ax.set_xticklabels(('Male', 'Female','Student', 'Faculty','Others'),fontsize=14)
plt.show()

在此输入图像描述

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有