如果知道产品重量的下限和上限,如何绘制频率分布?

问题描述 投票:0回答:1

我有一堆数据,其中有带盖和不带盖的不同产品的重量。

地点 产品 生产日期 不含盖子重量 带盖重量
美国 食物 2024/04/20 3 5
美国 食物 2024/04/14 72 79
美国 食物 2024/04/20 79 84
美国 食物 2024/04/19 82 86
美国 饮料 2024/04/20 69 76
美国 饮料 2024/04/14 8 13
美国 饮料 2024/04/17 51 56
美国 饮料 2024年4月15日 4 6
澳大利亚 食物 2024/04/19 13 14
澳大利亚 食物 2024/04/18 8 17
澳大利亚 食物 2024/04/21 89 97
澳大利亚 食物 2024/04/19 5 13
澳大利亚 文具 2024/04/20 63 67
澳大利亚 文具 2024/04/19 74 76
澳大利亚 文具 2024/04/20 72 80
澳大利亚 文具 2024/04/12 32 34

我想要绘制的是权重的频率分布。在 x 轴上,我的权重范围为 0 到 100,y 轴是我的频率分布。例如,如果我有一个产品,其带产品和不带产品的重量分别为 72 和 79,则对于 x 轴上 72 和 79 之间的所有重量,y 轴应为 1。

我希望我可以用类似于下面的数据绘制图表。

重量 分布
80 2
81 1
82 2
83 2
84 2
85 1
86 1
87
88
89 1
90 1

任何帮助将不胜感激。谢谢。

powerbi dax powerbi-desktop m daxstudio
1个回答
0
投票

当存在间隙且样本数据量较小时,Power BI 中的频率分布并不那么容易。也许您可以采用第三方方式,使用 RPython 脚本为任何特定产品过滤器绘制密度分布(左侧图)或直方图(右侧图)?当选择特定产品过滤器时,图表将被重新计算。

这是我的最终结果: enter image description here

设置: [Image]

使用 R 视觉对象,您需要包含要用于计算的值。在本例中,我添加了“带盖子的重量”和“不带盖子的重量”列。 然后,您需要创建将在 R 中输出绘图的 R 代码(然后在 Power BI 中显示)。我使用了以下代码:

# The following code to create a dataframe and remove duplicated rows is always executed and acts as a preamble for your script: 

# dataset <- data.frame(Weight with lid, Weight without lid)
# dataset <- unique(dataset)

# Paste or type your script code here:
dataset <- unlist(dataset, use.names=FALSE)
plot(density(dataset)) # OR use histogram(dataset)
  • unlist函数将数据帧展平为单个向量,从而可以轻松计算密度图或直方图。
  • plot(密度(数据集))线根据R算法绘制数据的密度分布。在我看来,默认输出相当难看,但它可以自定义,或者您可以使用 ggplot2 等第三方包(再次阅读有关如何在 Power BI 中使用它的文档)。

同时,它也符合您拥有动态X轴的要求,但这也是R内部可定制的。

© www.soinside.com 2019 - 2024. All rights reserved.