LevelScheme中的直方图

6 wolfram-mathematica levelscheme

我刚刚开始使用LevelScheme,并且在使直方图在图中正确拟合方面存在问题.最小的非工作示例:

<<"LevelScheme`"
Figure[{FigurePanel[{{0, 1}, {0, 1}},
   LabB -> textit["x"], BufferB -> 2.5,
   LabL -> textit["p(x)"], BufferL -> 2.5,
   FrameTicks -> {LinTicks[-4, 4], LinTicks[0, 1]},
   PlotRange -> {{-3, 3}, {0, 0.5}}], 
  RawGraphics[
   Histogram[RandomReal[NormalDistribution[], 1000], Automatic, 
    "ProbabilityDensity"]]},
 Frame -> False, PlotRange -> {{-0.075, 1.1}, {-0.1, 1.03}}]
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样

在此输入图像描述

它看起来应该是这样的

在此输入图像描述

基本上,Histogram图形对象不服从FigurePanel's PlotRange,而是服从主要FigurePlotRange.当Histogram被一个Plot或类似的命令替换时,不会发生此行为.所以以下产生了一个干净的情节

Figure[{FigurePanel[{{0, 1}, {0, 1}},
   LabB -> textit["x"], BufferB -> 2.5,
   LabL -> textit["p(x)"], BufferL -> 2.5,
   FrameTicks -> {LinTicks[-4, 4], LinTicks[0, 1]},
   PlotRange -> {{-3, 3}, {0, 0.5}}], 
  RawGraphics[Plot[1/Sqrt[2 Pi] Exp[-x^2/2], {x, -4, 4}]]},
 Frame -> False, PlotRange -> {{-0.075, 1.1}, {-0.1, 1.03}}]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

还有其他人遇到过这个问题吗?或者,您有解决方案的建议吗?

编辑

我以为我会在这个问题上添加一些绿色.我仍然有兴趣知道如何克服这个障碍.

tom*_*omd 4

好吧,我猜你不会太喜欢这个,但它是一种解决方法。

如果我给出PerformanceGoal -> "Speed"直方图选项(而不是PerformanceGoal -> "Quality"),我会禁用交互行为,但是,通过一些小的调整,我会得到以下结果:

<< "LevelScheme`"
Figure[{FigurePanel[{{0, 1}, {0, 1}}, LabB -> textit["x"], 
   BufferB -> 2.5, LabL -> textit["p(x)"], BufferL -> 2.5, 
   FrameTicks -> {LinTicks[-4, 4], LinTicks[0, 1]}, 
   PlotRange -> {{-3, 3}, {0, 0.55}}], 
  RawGraphics[
   Histogram[RandomReal[NormalDistribution[], 1000], Automatic, 
    "ProbabilityDensity", PerformanceGoal -> "Speed"]]}, 
 Frame -> False, PlotRange -> {{-0.075, 1.1}, {-0.15, 1.1}}]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @d'o-o'b 谢谢:-) 感谢您提出问题。LevelScheme 真的很棒。我以前没用过它,但我现在发现它非常有用。 (2认同)