【问题标题】:Plot vertical graphs, gnuplot. Rotate xlabel and key绘制垂直图,gnuplot。旋转 xlabel 和键
【发布时间】:2018-02-24 19:07:43
【问题描述】:

首先我要为文字道歉,我的英语有点生疏。

所以我在绘制图表时遇到了问题,而且耗时很长。图表如下。

此图是根据相对于数据文件的正态分布拟合生成的。

我想在 y 处绘制高斯,而不是在 x 处。使这些图表垂直。我研究了几件事,但没有找到。然后我有了在 \TeX 中旋转它的想法,但为此我必须转动标签、抽动和键。

我使用 epslatex,所以我遇到了透明度问题。我使用 cairolatex 解决了这个问题(生成了下图)。解决了透明度,我去转动所有的抽动和标签。

第一个问题,xlabel 是如何旋转的,我做到了 设置 xlabel '$E_p [meV]$' 旋转 180 它没有用,所以我的解决方案是制作一个 取消设置 xlabel 将标签 '$E_p$ [meV]' 设置为 30.5,-550 旋转 180 并调整位置,这没什么实际意义。

第二个问题,我没有找到任何解决方案,如何转动钥匙?

请按照图表更好地理解...

谢谢...

【问题讨论】:

    标签: graph graphics rotation gnuplot


    【解决方案1】:

    您可以使用set parametric 来绘制这些不能写为y(x) 的函数。在参数模式下,您必须为两个坐标指定函数x(t)y(t)。虚拟变量t 的范围由set trange 控制。一个简单的例子是

    set parametric
    set trange [-4:4]
    set autoscale yfix
    y(t) = t
    x(t) = t**2
    plot x(t), y(t) with lines 
    

    在这里,set autoscale yfix 自动将 yrange 调整到 y(t) 的范围内,这在这种情况下是需要的。 xrange 像往常一样自动缩放。

    所以,对于上面的例子,对于高斯人来说,有一些令人眼花缭乱的东西的扩展可能是

    reset
    set samples 1000
    set style fill  transparent solid 0.50 noborder
    set style function filledcurves x1=0
    set xlabel "Counts"
    set ylabel "Energy"
    Gauss(x,mu,sigma) = 1./(sigma*sqrt(2*pi)) * exp( -(x-mu)**2 / (2*sigma**2) )
    d1(x) = Gauss(x, 0.5, 0.5)
    d2(x) = Gauss(x,  2.,  1.)
    d3(x) = Gauss(x, -1.,  2.)
    set encoding utf8
    set parametric
    set trange [-8:8]
    set autoscale yfix
    plot d1(t),t title "μ =  0.5 σ = 0.5",\
         d2(t),t title "μ =  2.0 σ = 1.0",\
         d3(t),t title "μ = -1.0 σ = 2.0"
    

    【讨论】:

    • 您提出的解决方案非常好。他很快就解决了我的问题。设置样本1000是半格,我把它增加到20000很酷,只出现白线,非常谨慎。
    • 在 5.2 版中,您不应该看到任何白线。这是以前版本中填充曲线的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多