A high-resolution line survey of IRC+10216 with Herschel/HIFI (A&A 518, L8).
Code: "real_life_AA518L53Fig2.py". Programming language: Python DMelt Version 1. Last modified: 05/09/2015. License: Pro
https://datamelt.org/code/cache/real_life_AA518L53Fig2_2313.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 *;
from org.jplot2d.element import *
from org.jplot2d.layout import *
from org.jplot2d.sizing import *
from org.jplot2d.swing import *
from org.jplot2d.transform import *
from org.jplot2d.util import *
from org.jplot2d.util import *
from jhplot import *
from array import *



c1=HPlotXY("Cosmology",600,700,0)
c1.visible()
ef=c1.getFactory()
p=c1.getPlot()

# subplots
usp = ef.createSubplot()
lsp = ef.createSubplot()
usp.setPreferredContentSize(380, 260)
lsp.setPreferredContentSize(380, 160);
lsp.getMargin().setExtraTop(10);
p.setLayoutDirector(GridLayoutDirector());
p.addSubplot(usp,  GridConstraint(0, 1));
p.addSubplot(lsp, GridConstraint(0, 0));

#upper subplot Axes
uspx = ef.createAxes(2)
uspx[0].getTitle().setText("wavelength $\\mathrm{\\lambda}$ [$\\mathrm{\\micro}$m]");
uspx[0].getTitle().setFontSize(10);
uspx[0].getTickManager().setRange(Range.Double(10, 2e6));
uspx[0].getTickManager().getAxisTransform().setTransform(TransformType.LOGARITHMIC);
uspx[1].setLabelVisible(False);


uspy = ef.createAxes(2);
uspy[0].getTitle().setText("flux density [Jy]");
uspy[0].getTitle().setFontSize(12);
uspy[0].getTickManager().setRange(Range.Double(0.05, 1200));
uspy[0].getTickManager().getAxisTransform().setTransform(TransformType.LOGARITHMIC);
uspy[0].getTickManager().setLabelFormat("%.0f");
uspy[1].setLabelVisible(False);
usp.addXAxes(uspx);
usp.addYAxes(uspy);

# lower subplot Axes
lspx = ef.createAxes(2)
lspx[0].getTitle().setText("wavelength $\\mathrm{\\lambda}$ [$\\mathrm{\\micro}$m]");
lspx[0].getTitle().setFontSize(10);
lspx[0].getTickManager().setRange(Range.Double(10, 1500));
lspx[0].getTickManager().getAxisTransform().setTransform(TransformType.LOGARITHMIC);
lspx[1].setLabelVisible(False);

lspy = ef.createAxes(2);
lspy[0].getTitle().setText("residual [Jy]");
lspy[0].getTitle().setFontSize(10);
lspy[0].getTickManager().setRange(Range.Double(-0.7, 0.7));
lspy[0].getTickManager().setTicks(3);
lspy[1].setLabelVisible(False);
lsp.addXAxes(lspx);
lsp.addYAxes(lspy);

#Layer
ulayer = ef.createLayer();
usp.addLayer(ulayer, uspx[0], uspy[0]);
llayer = ef.createLayer();
lsp.addLayer(llayer, lspx[0], lspy[0]);

#solid line
solx = array('d', [10, 2000000])
soly = array('d', [0.09, 900])
sol = ef.createXYGraph(solx, soly);
sol.setColor(Color.BLUE);
sol.getLegendItem().setVisible(False);
ulayer.addGraph(sol)

#dashed line
dlx= array('d',[10, 2000000] )
dly = array('d', [0.1, 820])
dl = ef.createXYGraph(dlx, dly);
dl.setColor(Color.BLUE);
dl.setLineStroke(ef.createStroke(1, [1, 3 ]));
dl.getLegendItem().setVisible(False);
ulayer.addGraph(dl);


#ISO
xx= array('d',[15] )
xy = array('d',[ 0.1059 ]);
xye = array('d',[ 0.0212 ]);
xl = ef.createXYGraph(xx, xy, None, None, xye, xye, "Xilouris et al. 2004");
xl.setColor(Color.GREEN);
xl.setLineVisible(False);
xl.setSymbolVisible(True);
xl.setSymbolShape(SymbolShape.SQUARE);
ulayer.addGraph(xl);


# IRAS
gx = array('d',[ 24.9, 59.9, 99.8 ])
gy = array('d',[0.187, 0.546, 0.559])
gye = array('d',[ 0.0281, 0.0819, 0.0839])
gl = ef.createXYGraph(gx, gy, None, None, gye, gye, "Golombek et al. 1988");
gl.setColor(Color.GREEN);
gl.setLineVisible(False);
gl.setSymbolVisible(True);
gl.setSymbolShape(SymbolShape.FTRIANGLE);
ulayer.addGraph(gl);


# legend
usp.getLegend().setPosition(None);
usp.getLegend().setColumns(1);
usp.getLegend().setLocation(-10, 250);
usp.getLegend().setHAlign(HAlign.LEFT);
usp.getLegend().setVAlign(VAlign.TOP);
usp.getLegend().setBorderVisible(False);
usp.getLegend().setFontSize(12);


slrx =array('d',[ 10, 1000 ]);
slry = array('d',[ 0, 0 ]);
slrl = ef.createXYGraph(slrx, slry);
slrl.setColor(Color.BLUE);
slrl.getLegendItem().setVisible(False);
llayer.addGraph(slrl);


xry = array('d',[-0.01 ]);
xrl = ef.createXYGraph(xx, xry, None, None, xye, xye);
xrl.setColor(Color.GREEN);
xrl.setLineVisible(False);
xrl.setSymbolVisible(True);
xrl.setSymbolShape(SymbolShape.SQUARE);
xrl.getLegendItem().setVisible(False);
llayer.addGraph(xrl);

tx = array('d',[100, 160, 250, 350, 500])
tye = array('d',[0.129, 0.168, 0.215, 0.267, 0.375])
ty = array('d',[0.517, 0.673, 0.86, 1.074, 1.426]);
tl = ef.createXYGraph(tx, ty, None, None, tye, tye, "This paper");
tl.setColor(Color.RED);
tl.setLineVisible(False);
tl.setSymbolVisible(True);
tl.setSymbolShape(SymbolShape.FOCTAGON);
ulayer.addGraph(tl)



trry = array('d',[0.01, -0.03, -0.13, -0.21, -0.26]);
tx = array('d',[100, 160, 250, 350, 500])
tye = array('d',[0.129, 0.168, 0.215, 0.267, 0.375])
trl = ef.createXYGraph(tx, trry, None, None, tye, tye);
trl.setColor(Color.RED);
trl.setLineVisible(False);
trl.setSymbolVisible(True);
trl.setSymbolShape(SymbolShape.FOCTAGON);
trl.getLegendItem().setVisible(False);
llayer.addGraph(trl);

You see the box below because you did not login.