如何在Mathematica中获得直方图以百分比显示分档?

时间:2011-10-10 04:11:17

标签: wolfram-mathematica mathematica-8

我现在能够使用hspec“概率”生成一个y轴上的值在0.0和1.0之间的直方图,但是我想知道是否有办法将其显示为百分比(这不会改变任何东西)但是y轴的标记。)

以下是我目前正在使用的内容:

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

1 个答案:

答案 0 :(得分: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}]}]

enter image description here

使用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&lt; = x&lt;时,元素被放置在bin i中。 xMin + i dx。

     

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