4

我目前能够使用 hspec“概率”生成 y 轴上的值介于 0.0 和 1.0 之间的直方图,但我想知道是否有办法将其显示为百分比(这只会改变标签y 轴)。

这是我目前正在使用的:

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

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}]
           }]

在此处输入图像描述

编辑

如果您要使用BinLists[],请记住这个滑溜的细节:(来自帮助)

在 BinLists[data,{xMin,xMax,dx}] 中,当元素的值满足 xMin+(i-1) dx <= x < xMin+ i dx 时,元素被放置在 bin i 中。

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

于 2011-10-10T04:46:07.177 回答