Гистограмма без вертикальных линий в Mathematica
Я пытаюсь сделать гистограмму без вертикальных линий. Я хотел бы иметь сюжет, который выглядит как функция. Как это:
![enter image description here]()
Тот же вопрос задавался для R до (гистограммы без вертикальных линий), но я нахожусь в Mathematica.
Я смотрел в опции ChartStyle
без успеха.
Ответы
Ответ 1
Вероятно, есть способы сделать это, перепутывая EdgeForm[]
и FaceForm[]
в Histogram
, но я нашел, что проще свернуть его самостоятельно, когда мне это нужно. Здесь очень простой и быстрый пример:
histPlot[data_, bins_, color_: Blue] := Module[{
countBorder =
Partition[Riffle[Riffle[#1, #1[[2 ;;]]], Riffle[#2, #2]], 2] & @@
HistogramList[data, bins, "PDF"]
},
ListLinePlot[countBorder, PlotStyle -> color]
]
Выполнение histPlot[RandomReal[NormalDistribution[],{1000}],{-3,3,0.1}]
дает
![enter image description here]()
Затем вы можете расширить его, чтобы использовать любой параметр вместо "PDF"
, а также в случаях, когда вы хотите автоматически выбирать бункеры. Мне не нравится автоматическое бининг, потому что мне нравится контролировать ширину и экстенсивность моего бункера для предсказуемости и легкого сравнения с другими графиками.
Ответ 2
Вы также можете использовать ListPlot
с InterpolationOrder->0
:
(* example data *)
data = RandomVariate[NormalDistribution[], 10^3];
hist = HistogramList[data, {.5}];
ListPlot[Transpose[{hist[[1]], ArrayPad[hist[[2]], {0, 1}, "Fixed"]}],
InterpolationOrder -> 0,
Joined -> True,
AxesOrigin -> {hist[[1, 1]], 0}]
![histogram]()
Ответ 3
Вот два метода, которые работают в версии 7, используя пост-обработку:
rdat = RandomReal[NormalDistribution[0, 1], 200];
MapAt[
{Blue,
Line[# /. {{Rectangle[{x_, y_}, {X_, Y_}]}} :> Sequence[{x, Y}, {X, Y}]] } &,
Histogram[rdat, PerformanceGoal -> "Speed"],
{1, 2, 2, 2}
]
![Mathematica graphics]()
Cases[
Histogram[rdat, PerformanceGoal -> "Speed"],
Rectangle[{x_, y_}, {X_, Y_}] :> {{x, Y}, {X, Y}},
\[Infinity]
];
Graphics[Line[Join @@ %], AspectRatio -> 1/GoldenRatio, Axes -> True]
![Mathematica graphics]()