我绘制了一个子图,其中有需要按特定顺序显示的类别。我正在使用PowerBI Python脚本进行可视化处理,因此好像无法像PowerBI那样对数据框进行排序。在我的数据集中,我有fruit_category,rnk,quantity_sold,预测,目标和库存数量。数据集应按rnk排序,因为它指定了fruit_category的排序顺序。但是,我尝试做
dataset = dataset.sort_values('rnk',ascending=True)
但它不起作用。我的猜测是PBI不允许我这样做。这是图形:
这是我的代码:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
height1 = 0.3
height2 = 0.8
qtysold = dataset.Quantity_Sold
forecast = dataset.Forecast
goals = dataset.Goal
stockqty = dataset.Stock_Quantity
fruitcat = dataset.fruit_category
sortorder = dataset.rnk
numfruitcat = len(fruitcat)
dataset = dataset.sort_values('rnk',ascending=True)
qgoals = [goals]
goal_names = ['']
fig,plts = plt.subplots(numfruitcat,1,figsize=(15,7),dpi=500, sharex=True) # size 15x7
fig.subplots_adjust(hspace=0.9)
for goalidx in range(0,numfruitcat):
idx = len(fruitcat)-1 - goalidx # reverse order because of how subplot numbers them
plts[goalidx].barh(fruitcat[idx], goals*0.0025, color='k', height=5, left=goals[idx])
plts[goalidx].barh(fruitcat[idx], forecast[idx], color=(0.627, 0.627, 0.627, 0.3), height=3)
plts[goalidx].barh(fruitcat[idx], stockqty[idx], color=(0.682, 0.561, 0.624, 0.2), height=3)
plts[goalidx].barh(fruitcat[idx], qtysold[idx], color=(0.851, 0, 0.455,1), height=2)
plts[goalidx].text(qtysold[idx],0,'{:,}'.format(qtysold[idx]))
plts[goalidx].text(forecast[idx],0,'{:,}'.format(forecast[idx]))
plts[goalidx].text(stockqty[idx],0,'{:,}'.format(stockqty[idx]))
for count, qtr in enumerate(qgoals):
plts[goalidx].text(qtr[idx],3.2,'{}\n{:,}'.format(goal_names[count], qtr[idx]),horizontalalignment='left',verticalalignment='top',fontsize=10)
plts[goalidx].axis([0, max(stockqty)+100, -1, 1])
plt.legend()
sns.despine(right=True)
sns.set_theme(style="white")
plt.show()
如何轻松根据rnk对水果进行分类?奖励问题,我正在努力避免我的价值标签重叠。有没有办法避免它们重叠?例如,芒果的预测数量和目标数量非常接近,因此它们都是重叠的。谢谢!!
您要在分配值后对数据集进行排序,然后再进行此操作。
dataset = dataset.sort_values('rnk',ascending=True)
qtysold = dataset.Quantity_Sold
forecast = dataset.Forecast
goals = dataset.Goal
stockqty = dataset.Stock_Quantity
fruitcat = dataset.fruit_category
sortorder = dataset.rnk
numfruitcat = len(fruitcat)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句