# Visualisation of smoothed particle hydrodynamics data using splash

- Introduction
- Getting started
- Basic splash usage
- Simple two column plot
- Interactive mode
- Rendered plots
- Cross section
- Vector plots
- Contour plots
- Moving forwards and backwards through data files
- Zooming in and out / changing plot limits
- Producing figures for LaTeX documents
- Producing a movie of your simulation
- Producing a movie from a sequence of images
- Hollywood mode
- Remote visualisation
- Ten quick hints for producing good-looking plots

- Changing plot settings
- Menus
- (s)aving your settings
- set (m)ultiplot
- (d)ata options
- Re-reading the initial data / changing the dump file
- Using only a subset of data files / plotting every \(n-\)th dump file
- Plotting more than one file without re-reading the data from disk
- Calculating additional quantities not dumped
- Plotting data in physical units
- Rescaling data columns
- Changing the default column labels
- Plotting column density in g/cm\(^{2}\) without having x,y,z in cm
- Changing physical unit settings
- Changing the axis label to something like \(x\) \([ \times 10^{4} ]\)
- Changing the time units

- (i)nteractive mode
- Adapting the plot limits
- Making the axes logarithmic
- Cycling through data columns interactively
- Colouring a subset of the particles and retaining this colour through other timesteps
- Working out which particles formed a particular object in a simulation
- Plotting only a subset of the particles
- Rendering using only a subset of the particles
- Tracking a set of particles through multiple timesteps
- Taking an oblique cross section interactively

- (p)age options
- Overlaying timesteps/multiple dump files on top of each other
- Plotting results from multiple files in the same panel
- Plotting more than one dump file on the same page
- Changing axes settings
- Turning axes off
- Turning axes labels off
- Using logarithmic axes labels
- Plotting a second, rescaled y-axis on the right hand side of a plot
- Changing the size of the plotting surface
- Dividing the plotting page into panels
- Tiling plots with the same \(x-\) and \(y-\) axes
- Using non-proportional scales for spatial dimensions
- Using non-square axes on coordinate plots
- Changing the character height for axes, labels and legends
- Using a thicker line width on plots
- Changing the foreground and background colours
- Plotting axes, legends and titles in white even when the labels are plotted in black

- le(g)end and title options
- Adding titles to plots / repositioning titles
- Turning off/moving the time legend
- Changing the text in the time legend
- Making the legend read ‘z=’ instead of ‘t=’
- Plotting the time legend on the first row/column of panels / nth panel only
- Plotting a length scale on coordinate plots
- Annotating a plot with squares, rectangles, arrows, circles and text
- Adding your name to a plot/movie

- particle plot (o)ptions
- Plotting non-gas particles (e.g. ghosts, boundary, sink particles)
- Plotting non-gas particles on top of rendered plots
- Using ghost particles in the rendering
- Turn off plotting of gas particles
- Plotting dark matter particles
- Plotting a column density plot of dark matter/N-body particles
- Plotting sink particles
- Plotting sink particles with size proportional to the sink radius
- Plotting a point mass particle with physical size
- Changing graph markers for each particle type
- Plotting each particle type in a different colour
- Changing the order in which different particle types are plotted
- Plotting using lines instead of dots (e.g. for energy vs time plots)
- Plotting multiple lines with different colours/line styles and a legend
- Joining the dots
- Plotting the size of the smoothing circle around selected particles
- Locating a particular particle in the data set
- Plotting in different coordinate systems (e.g. cylindrical coordinates)
- Plotting vector components in different coordinate systems
- Plotting orbital velocities
- Plotting against azimuthal angle/cylindrical radius/etc
- Plotting the exact solution to common test problems
- Plotting an exact solution from a file
- Changing the exact solution line style & colour
- Setting the number of points used in an exact solution calculation
- Plotting an inset plot of residual errors from an exact solution

- (l)imits menu
- Using plot limits which adapt automatically for each new plot
- Using adaptive plot limits for the colour bar but not for the coordinates
- Setting plot limits manually
- Making plot limits relative to a particular particle
- Plotting in a comoving reference frame
- Setting the origin to correspond to a particular particle
- Tracking a particle
- Setting the origin to the position of the \(n\)th sink particle
- Plotting radial plots around sink particles
- Automatically adapting plot limits to match aspect ratio of output device
- Plotting with log axes.
- Plotting the square root, inverse or square of a quantity
- Resetting limits for all columns
- Restoring all plot limits to their minimum and maximum values in the current dump file
- Using a subset of data restricted by parameter range
- Plotting only particles with \(\rho > 10\), \(u > 20\) and \(-0.25 < x < 0.25\)

- (r)endering options
- Changing the number of pixels in a rendered image
- Changing the colour scheme
- Plotting contours as well as the rendered image
- Plotting contours instead of a rendered image
- Changing the number of contour levels
- Setting the contour levels manually
- Adding numeric labels to contours
- Adding arbitrary contour labels
- Turning the colour bar off/ moving the colour bar label
- Changing the style of the colour bar
- Using a horizontal colour bar
- Using ‘plot-hugging’ colour bars
- Using floating/inset colour bars
- Plotting ticks on only one side of the colour bar
- Changing the text in the colour bar label
- Using coloured particles instead of rendering to pixels
- Using normalised interpolations
- Speeding up the rendering on 3D column integrated plots
- Density weighted interpolation
- Selecting and rendering only a subset of the particles
- Changing the label used for 3D projection plots
- Changing “column density” to “surface density” on 3D plots
- Changing the interpolation kernel

- (v)ector plot options
- Changing the number of arrows on vector plots
- Changing the number of pixels in vector plots
- Changing the size of arrows on vector plots
- Plotting vector arrows in white instead of black or vice-versa
- Turning off the legend for vector plots
- Moving the vector plot legend
- Plotting stream/fieldlines instead of arrows
- Turning arrow heads off for vector plots
- Hiding vector arrows where there are no SPH particles
- Plotting a vector plot in a cross section slice
- Making all arrow the same length (i.e., showing direction only, not magnitude)

- (x) cross section/3D plotting options
- Plotting a cross section slice through 3D data
- Plotting a cross section line through 2D data
- Rotating the particles
- Setting the origin about which particles are rotated
- Adding 3D perspective
- Using 3D surface rendering
- Plotting 3D box / 3D axes
- Setting up animation sequences
- Plotting a sequence of frames rotating a data set through 360 degrees
- Plotting a ‘fly-around’ of 3D data
- Plotting a flythru of 3D data
- Adding a steady zoom sequence to a movie
- Adding a steady change of colour bar limits
- Adding steady movement of the 3D observer

- Miscellaneous other useful things

- Advanced plotting examples
- Other useful functionality
- Conversion of binary data files to ascii
- Conversion of binary data files to csv
- Interpolation of SPH data to 2D and 3D grids
- Reading 3D cubes or grids generated by splash to grid into Python
- Using splash to calculate global quantities as a function of time.
- Using splash to calculate line-of-sight extinction to sink particles
- Using splash to time average a series of files
- Reading/processing data into images without having to answer prompts
- Computing volume-weighted probability density functions from SPH data using SPLASH
- Using special characters in the plot labels
- Outputting the raw pixel map to a file
- Reading raw pixel maps from splash into Python

- Lightcurve calculations
- Frequently Asked Questions
- How do I make a movie from splash output?
- I’m getting a segmentation fault, is splash broken?
- How do I write a postscript/eps file for LaTeX?
- How can I get a colour scheme like the one Joe Bloggs uses?
- What about boundaries? How does the rendering work near a boundary?
- How does splash handle multiple particle types?
- What does SPLASH stand for?
- SPLASH is so great. Can I send you loads of money?

- Contributing
- Acknowledgements
- References
- Links