在Mathematica中如何以百分比显示直方图的区间?

4

我目前可以使用hspec "Probability"生成y轴值在0.0到1.0之间的直方图,但我想知道是否有一种方法可以将其显示为百分比(这只会更改y轴标签)。

这是我目前正在使用的:

Histogram[rawdata, {{0, 10, 20, 30, 40, 50, 60, 70, 80, 90,100}}, "Probability", 
          PlotRange -> {0, 1}]
1个回答

11
rawdata = RandomReal[NormalDistribution[50, 20], 12000];
bins = {Range[0, 100, 10]};
Histogram[rawdata, bins, "Probability", 
 Ticks ->{First@bins, 
          Table[{.01 i, If[Mod[i , 5] == 0, ToString[i] <> "%", ""]}, {i, 100}]}]

在此输入图片描述

使用BarChart时,您还可以完全控制标签,在某些情况下这可能更好:

BarChart[(Length /@ BinLists[rawdata, bins])/Length@rawdata 100, 
  ChartLabels -> bins[[1, 2 ;;]],
  Ticks -> {Automatic,
            Table[{i, If[Mod[i, 5] == 0, ToString[i] <> "%", ""]}, {i, 1, 100}]
           }]

enter image description here

编辑

如果您打算使用BinLists[],请记住这个微妙的细节:(来自帮助文档)

 

在 BinLists[data,{xMin,xMax,dx}] 中,当元素的值满足 xMin + (i-1)dx <= x < xMin + i dx 时,元素就会被放入第 i 个箱子中。

    

在形式上为 BinLists[data,{{b1,b2,...}}],每端的 bi 可以是 -Infinity 和 +Infinity。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接