Showx X-Y values with statistical and systematic errors
Code: "p1d_points.py". Programming language: Python DMelt Version 1. Last modified: 12/08/2015. License: Free
https://datamelt.org/code/cache/p1d_points_3262.py
To run this script using the DMelt IDE, copy the above URL link to the menu [File]→[Read script from URL] of the DMelt IDE.



from java.awt import Color,Font
from java.util import Random
from jhplot  import HPlot,H1D,P1D
from math  import sqrt

c1 = HPlot("Canvas",700,400,2,1)

p1= P1D("test 1")
p2= P1D("test 2")
p3= P1D("test 3")
p4= P1D("test 4")

c1.setGTitle("Example of symbols", Color.blue) #put title
c1.viewHisto(0)  # make sure starts from 0
c1.visible(1)
c1.setAutoRange()


# fill
rand = Random() 
for i in range(10):
      x=4.0*i # x-value
      y=20.0*i+10.0*rand.nextGaussian() # y-value
      xLeft=3.5
      xRight=3.5
      xLeftSys=2.0
      xRightSys=2.0
      yUpper=5.0
      if y>0: yUpper=sqrt(y)
      yLower=yUpper
      yUpperSys=4.5 
      xLowerSys=4.5
      p1.add(x,y,xLeft,xRight,yUpper,yLower,xLeftSys,xRightSys,yUpperSys,xLowerSys);
      p2.add(2*x,4*y,xLeft,xRight,5*yUpper,5*yLower,xLeftSys,xRightSys,20.0*yUpperSys,20.0*xLowerSys);
      p3.add(x,8*y,xLeft,xRight,20*yUpper,20*yLower,xLeftSys,xRightSys,50*yUpperSys,50*xLowerSys);
      p4.add(2*x,12*y,xLeft,xRight,20*yUpper,30*yLower,xLeftSys,xRightSys,30*yUpperSys,30*xLowerSys);

p1.setStyle("p")
p1.setErrAll(1)
p1.setColor(Color.red)
p1.setSymbolSize(4)

c1.cd(1,1)
c1.draw(p1)
p2.setSymbol(5)
p2.setErrAll(1)
c1.setNameX("Fig.1")
c1.setNameY("Yaxis");
c1.draw(p2)

c1.cd(2,1)
c1.setAutoRange()
p3.setSymbol(4)
p2.setErrAll(1)
p3.setColor(Color.blue)
p3.setSymbolSize(6)
c1.draw(p3)
p4.setSymbol(4)
c1.draw(p4)
     
h1 = H1D("e^{+}e^{-} → W^+{}W^{-} → 4 jets",6, 50.0, 100.0)
rand = Random()
# fill histogram
for i in range(2000):
      h1.fill(100+10*rand.nextGaussian())

h1.setFill(1)
h1.setFillColor(Color.green)
h1.setColor(Color.green)
h1.setErrX(0)
h1.setErrY(1)
h1.setPenWidthErr(2)
c1.setLogScale(0,0)
c1.setNameX("Fig.2")
c1.setNameY("Yaxis");
c1.draw(h1)


# export to some image (png,eps,pdf,jpeg...)
# c1.export(Editor.DocMasterName()+".png")