About Chandra Archive Proposer Instruments & Calibration Newsletters Data Analysis HelpDesk Calibration Database NASA Archives & Centers Chandra Science Links

Skip the navigation links
Last modified: 10 December 2007

URL: http://cxc.harvard.edu/chips4.0/gallery/bind.py.html
Hardcopy (PDF): A4 | Letter

Gallery: Sharing an axis between plots (Python)

Examples


Three datasets in separate plots with a common axis

[ChIPS output]
Postscript version
pref = ChipsPreferences()
pref.curve.symbol.style = "none"
pref.plot.style = "open"
pref.axis.offset.perpendicular = 70
pref.axis.ticklabel.offset = 10
set_preferences(pref)

add_window(6.0,3.0)
strip_chart(3)

add_curve("aspect.fits[cols time,ra]")

limits(X_AXIS,AUTO,AUTO)

ax = ChipsAxis()
ax.majortick.style = "centered"
ax.minortick.style = "centered"
ax.majortick.length = 8
ax.minortick.length = 4
set_xaxis(ax)
ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 5.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)
set_plot_ylabel("RA")

current_plot("plot2")
add_curve("aspect.fits[cols time,dec]")

ax = ChipsAxis()
ax.majortick.style = "centered"
ax.minortick.style = "centered"
ax.majortick.length = 8
ax.minortick.length = 4
set_xaxis(ax)
ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 2.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)
set_plot_ylabel("Dec")

current_plot("plot3")
add_curve("aspect.fits[cols time,roll]")

set_plot_xlabel("Time (s)")
set_plot_ylabel("Roll")
set_xaxis(["tickformat","%.0f","offset.perpendicular",45])
ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 5.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)

Three datasets in separated plots

[ChIPS output]
Postscript version
set_preference("curve.symbol.style","none")
set_preference("axis.offset.perpendicular","70")

add_window(6.0,3.0)
strip_chart(3,0,5.0e-2)

add_curve("aspect.fits[cols time,ra]")
limits(X_AXIS,AUTO,AUTO)

ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 5.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)
set_plot_ylabel("RA")

current_plot("plot2")
add_curve("aspect.fits[cols time,dec]")

ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 2.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)
set_plot_ylabel("Dec")

current_plot("plot3")
add_curve("aspect.fits[cols time,roll]")

set_plot_xlabel("Time (s)")
set_plot_ylabel("Roll")
set_xaxis(["offset.perpendicular",45,"tickformat","%.0f"])
ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 5.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)

Three datasets in separate plots with a hidden X axis

[ChIPS output]
Postscript version
pref = ChipsPreferences()
pref.curve.symbol.style = "none"
pref.plot.style = "open"
pref.axis.offset.perpendicular = 30
pref.plot.leftmargin = 0.15
pref.plot.rightmargin = 0.15
set_preferences(pref)

add_window(6.0,3.0)
strip_chart(3)

add_curve("aspect.fits[cols time,ra]")
limits(X_AXIS,AUTO,AUTO)

cid = ChipsId()
cid.coord_sys = PLOT_NORM
add_label(cid,1.05,0.5,"RA")

hide_axis("ax1")
ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 5.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)

current_plot("plot2")
add_curve("aspect.fits[cols time,dec]")

cid = ChipsId()
cid.coord_sys = PLOT_NORM
add_label(cid,-0.1,0.5,"Dec")

hide_axis()
display_axis("by2")
axis = ChipsAxis()
axis.majortick.mode = "interval"
axis.majortick.interval = 2.0e-3
axis.tickformat = "%.3f"
set_axis("by2",axis)
set_axis_ticklabel_visible("by2",1)

current_plot("plot3")

add_curve("aspect.fits[cols time,roll]")
set_xaxis(["tickformat","%.0f"])
ay = ChipsAxis()
ay.majortick.mode = "interval"
ay.majortick.interval = 5.0e-3
ay.tickformat = "%.3f"
set_yaxis(ay)

set_plot_xlabel("Time (s)")
cid = ChipsId()
cid.coord_sys = PLOT_NORM
add_label(cid,1.05,0.5,"Roll")

A grid where the plots share axes and the plot sizes are different

[ChIPS output]
Postscript version
pref = ChipsPreferences()
pref.curve.symbol.style = "none"
pref.plot.leftmargin = 0.25
pref.plot.rightmargin = 0.1
pref.plot.bottommargin = 0.1
pref.axis.offset.perpendicular = 10
set_preferences(pref)

add_window()
split(2,2)
adjust_grid_xrelsize(1,2.0)
adjust_grid_yrelsize(1,2.0)

add_curve("aspect.fits[cols ra,dec]")

ay = ChipsAxis()
ay.majortick.interval = 2.0e-3
ay.majortick.mode = "interval"
ay.minortick.count = 3
ay.tickformat = "dec"
set_yaxis(ay)

set_axis_ticklabel_visible("ax1",0)
set_axis("bx2",["x.label","RA"])

current_plot("plot2")
add_curve("aspect.fits[cols time,dec]")

bind_axes("plot1","ay1","plot2","ay1")
set_axis_ticklabel_visible(0)
set_axis("by2",["y.label","Dec"])

# Hide both the lower and upper X axes
set_cascading_property("ax1",chips_axis,"visible","0")
set_cascading_property("bx2",chips_axis,"visible","0")

# Add a label above the plot along the X axis
cid = ChipsId()
cid.coord_sys = PLOT_NORM
add_label(cid,0.5,1.05,"Time",["halign",0.5,"size",14.0])

current_plot("plot3")
add_curve("aspect.fits[cols ra,time]")

bind_axes("plot1","ax1","plot3","ax1")

set_xaxis(["tickformat","ra"])
reverse_axes(X_AXIS)
ax = ChipsAxis()
ax.majortick.interval = 1.0e-2
ax.majortick.mode = "interval"
ax.minortick.count = 3
set_xaxis(ax)

# Hide both the left and right Y axes
set_cascading_property("ay1",chips_axis,"visible","0")
set_cascading_property("by2",chips_axis,"visible","0")

# Add a label to the left of the plot along the Y axis
cid = ChipsId()
cid.coord_sys = PLOT_NORM
add_label(cid,-0.1,0.5,"Time",["halign",0.5,"size",14.0,"angle",90.0])

# Remove the un-used plot created by split
delete_plot("plot4")
Hardcopy (PDF): A4 | Letter
Last modified: 10 December 2007


The Chandra X-Ray Center (CXC) is operated for NASA by the Smithsonian Astrophysical Observatory.
60 Garden Street, Cambridge, MA 02138 USA.    Email: cxcweb@head.cfa.harvard.edu
Smithsonian Institution, Copyright © 1998-2004. All rights reserved.