Python 3.x 使用matplotlib在条形图上绘制350个用户

Python 3.x 使用matplotlib在条形图上绘制350个用户,python-3.x,pandas,dataframe,matplotlib,bar-chart,Python 3.x,Pandas,Dataframe,Matplotlib,Bar Chart,我正试图勾勒出大约300名用户以及他们购买了多少。我的数据位于pandas数据框中,“ID”列表示用户,“Number”列表示购买数量 到目前为止,我已经用我找到的以下代码进行了尝试,但从未在一个绘图中获得所有ID 代码如下: import random # Prepare Data n = subs_['Number'].unique().__len__()+1 all_colors = list(plt.cm.colors.cnames.keys()) random.seed(100) c

我正试图勾勒出大约300名用户以及他们购买了多少。我的数据位于pandas数据框中,“ID”列表示用户,“Number”列表示购买数量

到目前为止,我已经用我找到的以下代码进行了尝试,但从未在一个绘图中获得所有ID

代码如下:

import random
# Prepare Data

n = subs_['Number'].unique().__len__()+1
all_colors = list(plt.cm.colors.cnames.keys())
random.seed(100)
c = random.choices(all_colors, k=n)

# Plot Bars
plt.figure(figsize=(16,10), dpi= 60)
plt.bar(subs_['ID'], subs_['Number'], color=c, width=.5)
for i, val in enumerate(subs_['Number'].values):
    plt.text(i, val, float(val), horizontalalignment='center', verticalalignment='bottom', fontdict={'fontweight':500, 'size':10})

# Decoration
plt.gca().set_xticklabels(subs_['ID'], rotation=60, horizontalalignment= 'right')
plt.title("Number of purchases by user", fontsize=22)
plt.ylabel('# Purchases')
plt.ylim(0, 45)
plt.show()
用户购买的条形图:


我认为您的问题来自您的IDE:

随机导入
将matplotlib.pyplot作为plt导入
作为pd进口熊猫
#准备数据
d={'ID':范围(1300),'Number':范围(1300)}
subs\upd.DataFrame(数据=d)
n=subs_['Number'].unique()
所有颜色=列表(plt.cm.colors.cnames.keys())
随机。种子(100)
c=随机选择(所有颜色,k=n)
#绘图栏
plt.图(figsize=(16,10),dpi=60)
plt.bar(subs_['ID'],subs_['Number'],颜色=c,宽度=0.5)
对于i,枚举中的val(subs_['Number'].值):
plt.text(i,val,float(val),horizontalalignment='center',verticalalignment='bottom',fontdict={'fontweight':500,'size':10})
#装饰
plt.gca()
产品名称(“用户购买数量”,fontsize=22)
plt.ylabel(“#购买”)
plt.ylim(0,45)
plt.show()
这对我来说很好: