エラーバーを影で表示したい
こんなかんじのプロットが描けます。
まず普通のエラーバー付きプロットは、
ErrorListPlot—Wolfram Language Documentation
です(Needs[ ]
でパッケージのロードをお忘れなく)。
エラーバーをI字型の棒で表現するのもよいですが、半透明な領域として表現すると、すごくキレイになります。
簡単なプロットの場合は"ただ格好つけてるだけ"ですが、ひとつのプロットにたくさんの線&エラーバーを書く場合は、結構わかりやすくなる気がします。
詳しくは、ココ:
なかなかゴッツイですが、細かいところはそのままコピペして使って、必要なところをちょいちょいカスタマイズすればよいかと。 この方法だと、ErrorListPlotのパッケージは不要です。 下に自分の使っている例を載せておきます。
ClearAll[ePlot, ePlotFunc, plusMinusMean]; plusMinusMean[a_, b_] := {a + b, a - b, a}; ePlot[plotFun_, dataX_, plusMinList_, color_] := Block[{f}, f[y_] := Transpose[{dataX, y}]; plotFun[{f[plusMinList[[All, 1]]], f[plusMinList[[All, 2]]], f[plusMinList[[All, 3]]]}, Filling -> {1 -> {2}}, Joined -> {True, True, True}, PlotStyle -> {Opacity[0], Opacity[0], Darker@color}, PlotMarkers -> {Graphics@{Disk[]}, 0.01}, FillingStyle -> Directive[Opacity[0.2], color], Frame -> True, Axes -> False, FrameLabel -> {Style["X value", "Italic", FontSize -> 30], Style["Y value", "Subtitle", FontSize -> 23], Style["Title of this plot", "Subtitle", FontSize -> 23]}, LabelStyle -> {FontFamily -> "Times", Directive[Large], Bold, Thick}, PlotRange -> {{1.9, 6.1}, {0.8, 1.8}}, AspectRatio -> 3/4, ImageSize -> Medium]] ePlotFunc[data_, color_] := Module[{dataY, dataX, errorY, plusMinList}, dataY = data[[All, 2]]; dataX = data[[All, 1]]; errorY = data[[All, 3]]; plusMinList = Thread[plusMinusMean[dataY, errorY]]; ePlot[ListPlot, dataX, plusMinList, color]] colors = ColorData[109, "ColorList"][[1 ;; 4]];
これを読み込ませておいてから、
Show@MapThread[ePlotFunc, {{data1, data2, data3, data4}, colors}]
というかんじにdata1〜data4をプロットします。(data1〜data4は、主線&エラーの絶対値のN-by-2行列。)
これで最初に載せたプロットが出ます。