CustomTicksGuide.nb Custom Ticks Guide
User Manual:
Open the PDF directly: View PDF .
Page Count: 10
Download | |
Open PDF In Browser | View PDF |
CustomTicks package Mark A. Caprio, Department of Physics, University of Notre Dame Version 1.62 (September 30, 2008) Introduction Mathematica provides a powerful system for generating graphics but does not provide, in built-in form, the fine formatting control necessary for the preparation of publication quality figures. The CustomTicks package provides detailed customization of tick mark placement and formatting. The flexibility achieved matches or exceeds that available with most commercial scientific plotting software. Linear, logarithmic, and general nonlinear axes are supported. Some tick mark manipulation functions, for use in graphics programming, are also provided by the CustomTicks package. The CustomTicks package was developed as part of the LevelScheme system for preparing publication-quality scientific figures [Comput. Phys. Commun. 171, 107 (2005)], available from http://wnsl.physics.yale.edu/ levelscheme. Basic use for linear axes The default tick marks produced by Mathematica's plotting functions are typically not suitable for publication. Most notably, Mathematica drops trailing zeros after the decimal point in its default tick marks, leading to a series of ticks of "ragged" lengths (e.g., "0.", "0.5", "1.", …). The tick marks are also often too short to be easily visible. (Note that the default typewriter-style font used by Mathematica plotting functions is neither aesthetic or appropriate for publication, but this can easily be remedied by setting $TextStyle={FontFamily->"Times"}.) It is possible to override the default Mathematica ticks by specifying a list of tick marks, complete with formatting information, as the value for the Ticks or FrameTicks option (see the Mathematica documentation for basic plotting options). It is prohibitively tedious to construct such lists by hand. The CustomTicks package provides functions to automatically construct lists of tick marks, with detailed control over formatting. LinTicks@ x1, x2D Produces linear tick specifications, with automatically chosen major and minor tick intervals LinTicks@ x1, Produces linear tick specifications, with manually chosen major and minor tick intervals x2, interval, subdivsD Tick specification function. Version 1.62 CustomTicks package option name 2 default value TickRange 8−Infinity, Infinity< Limits the drawing of ticks Hand their labelsL to given coordinate range ShowTickLabels True Controls whether or not major tick labels are printed TickLabelRange 8−Infinity, Infinity< Limits printing of major tick labels to given coordinate range ShowFirst True Controls whether or not first major tick label is printed ShowLast True Controls whether or not last major tick label is printed TickLabelStep 1 Limits printing of major tick labels to one in every TickLabelStep major ticks TickLabelStart 0 MajorTickLength 80.01, 0< Used in conjunction with TickLabelStep chooses which subset of major tick labels are printed MinorTickLength 80.005, 0< MajorTickStyle 8< List specifying the lengths for the major ticks Hinto and out of the frame, as described in the Mathematica documentation for TicksL List specifying the lengths for the minor ticks Hinto and out of the frame, as described in the Mathematica documentation for TicksL MinorTickStyle 8< List specifying the line style for the major ticks DecimalDigits Automatic Sets number of digits after decimal place for major tick labels; if Automatic , the maximum number of digits needed for any label is used ShowMinorTicks True ExtraTicks 8< Controls whether or not the minor ticks are drawn; mainly for use with LogTicks Hsee belowL List specifying the line style for the minor ticks Additional coordinate values at which to insert tick marks Tick formatting options. The LinTicks function, in its simplest form, is given a starting and an ending coordinate value as its arguments. It then generates the same tick marks Mathematica would have for this coordinate range, except that the labels are given with fixed decimal formatting (e.g., "0.0", "0.5", "1.0", … for the example above) and the tick marks lines are somewhat longer. Alternatively, arguments may be given to manually specify the coordinate interval between major tick marks and the number of minor subdivisions. Several further options, listed above, can be specified. These control which tick marks are drawn, which major ticks have labels, and the formatting of the tick lines and labels. Some examples are shown below. Version 1.62 CustomTicks package 3 2. 2.0 1.5 1.5 1. 1.0 0.5 0.5 0. 0.0 Mathematica ragged labels LinTicks neat formatting 2 2 1 1 0 0 Manual choice of spacing Advanced formatting options LinTicks@0, 2D LinTicks@0, 2, 1, 5D LinTicks@0, 2, 0.5, 5, TickLabelStep → 2, MinorTickStyle → 8Red"Times"} ] Version 1.62 CustomTicks package 10 2 10 1 10 0 0 5 1 2 3 4 Plot[ {Log[10,(10^x)^2],Log[10,(10^x)^5]},{x,-1,3}, PlotRange→{{-0.0001,3},{-0.5,4.5}}, FrameTicks→{ LogTicks[10,0,3], LogTicks[10,-1,5], None, None }, Axes→False,Frame→True,ImageSize→72*3, BaseStyle→{FontFamily->"Times"} ] 10 4 10 3 10 2 10 1 10 0 10 0 10 1 10 2 10 3 Version 1.62 CustomTicks package 6 Automatic ticks for Mathematica plot functions The functions LinTicks and LogTicks can also be specified as automatic tick generation functions for the Mathematica plotting functions. This saves you typing the plot range explicitly each time, at least if you do not wish to specify details such as the number of subdivisions. Plot[ {Log[10,Cosh[x]],Log[10,Sinh[x]]},{x,0,10}, PlotRange→{{-0.0001,4},{-0.5,2.5}}, FrameTicks→{LinTicks,LogTicks,None,None}, Axes→False,Frame→True,ImageSize→72*3, BaseStyle→{FontFamily->"Times"} ] 10 2 10 1 10 0 0 1 2 3 4 What if you wish to have tick marks on the top and right as well, but without labels on them? Simply specifying FrameTicks→{LinTicks,LogTicks} or FrameTicks→{LinTicks,LogTicks,LinTicks,LogTicks} would unfortunately result in ticks with unsightly and redundant labels. This can be avoided with the CustomTicks StripTickLabels function, as shown below. Plot[ {Log[10,Cosh[x]],Log[10,Sinh[x]]},{x,0,10}, PlotRange→{{-0.0001,4},{-0.5,2.5}}, FrameTicks→ {LinTicks,LogTicks,StripTickLabels[LinTicks],StripTickLabels[LogTicks]}, Axes→False,Frame→True,ImageSize→72*3, BaseStyle→{FontFamily->"Times"} ] Version 1.62 CustomTicks package 10 2 10 1 10 0 7 0 1 2 3 4 If you are doing many such plots, it is easiest to set the necessary options as the default options for Plot. SetOptions[Plot,Axes→False,Frame→True,FrameTicks→ {LinTicks,LogTicks,StripTickLabels[LinTicks],StripTickLabels[LogTicks]},Bas eStyle→{FontFamily→"Times"}]; GraphicsGrid[{{Plot[Log[10,x^2],{x,0,10}],Plot[Log[10,x^-2],{x,0,10}]}}] 102 101 101 100 100 10-1 10-1 0 2 4 6 8 10 Version 1.62 10-2 0 2 4 6 8 10 CustomTicks package 8 Advanced customization option name default value TickLabelFunction Automatic Function used to generate major tick labels Hfirst argument is the numerical coordinate, second argument is the LinTicks default formatted labelL; Automatic gives the default label TickPreTransformation Identity Function to be applied to tick coordinates, before range tests and label generation TickPostTransformation Identity Function to be applied to tick coordinates, after range tests and label generation MinorTickIndexTransfo rmation Function to be applied to minor tick indices Horiginally 1, 2, …, subdivs -1L before minor tick coordinate is obtained by linear interpolation between major tick positions MinorTickIndexRange Identity 81, Infinity< Limits drawing of minor ticks to those with indices Hbefore tranformationL in given range Advanced customization options. LinTicks accepts several options for advanced customization, allowing fully customizable labels and general nonlinear axis scales. The option TickLabelFunction is used to specify the function to be used to construct tick labels (see the Mathematica documentation for Function for information on defining functions). The label function is given as arguments both the raw numerical tick coordinate and the LinTicks default formatted label, so it can work with whichever is more convenient. The label function may be used for simple tasks, such as attaching a prefix or suffix to the usual default label, or for more sophisticated formatting. In the following example, tick values are formatted as rational multiples of p. LinTicks[0,2*Pi,Pi/2,4,TickLabelFunction→(Rationalize[#/Pi]*Pi&)] 1 0 -1 0 p ÅÅÅÅÅ 2 3p ÅÅÅÅÅÅÅÅÅÅ 2 p 2p Nonlinear axes are constructed using the coordinate transformation functions. For instance, the LogTicks function provided by the CustomTicks package is actually implemented as a special case of LinTicks, with transformed minor Version 1.62 CustomTicks package 9 tick positions. A simplified version (base 10 logarithm only) is given below for illustration. Log10Ticks[p1_Integer,p2_Integer,Opts___?OptionQ]:=LinTicks[ p1,p2,1,9, TickLabelFunction→(DisplayForm[SuperscriptBox[10,IntegerPart[#]]]&), MinorTickIndexTransformation→(Log[10,#+1]*9&), Opts ]; LinTicks@ Produces major and minor ticks at the specified coordinate values majorticklist, minorticklistD Form of tick specification function for ticks at arbitrary locations. Ticks may be placed at arbitrary coordinate locations by using the most flexible form of LinTicks, in which all major and minor tick coordinates are specified explicitly in two lists. All the usual coordinate-transformation and customization options described above (except MinorTickIndexRange) are still applicable. 0 1 2 3 5 Manual choice of tick coordinates LinTicks@80,1,2,3,5<,Range@0.1,0.9,0.1DD Tick mark programming utilities LimitTickRange@8 x1, x2 <, ticksD Selects those tick mark with coordinates in the range specified; approximate equality testing is used to avoid dropping ticks at the ends of the interval due to roundoff ; ticks must be specifies as lists rather than bare numbers TransformTicks@ Applies the specified transformation functions to the tick coordinates and tick lengths, coordfcn, lengthfcn, ticksD respectively; ticks must be specified with an explicit pair of in and out lengths StripTickLabels@ ticksD Removes any text labels from ticks; ticks must be specified as lists rather than bare numbers AugmentTicks@ labelfcn , Upgrades all tick specifications to full specifications, complete with labels, 8 l1, l2 <, stylelist, ticksD lengths into and out of the frame Hdefault 0 for outL, and style directives AugmentAxisTickOptions@ Given a list of tick options Hthemselves lists of tick specificationsL for several axes, numaxes, tickoptionsD replaces any None entries with null lists and appends additional null lists as needed to make numaxes entries; a value None for tickoptions is replaced by a list of null lists TickQ@ xD Tests whether or not x is a valid tick mark specificiation TickListQ@ xD Tests whether or not x is a list of valid tick mark specificiations Tick manipulation utilities. Several utility functions for tick mark manipulation and testing are provided. These are mainly intended for use in graphics programming rather than for direct use by someone wishing to specify tick marks. They are used internally by the LevelScheme figure preparation system. Version 1.62 CustomTicks package 10 FractionDigits@ xD Returns the number of digits to the right of the point in the decimal representation of x Decimal digit counting function. FractionDigits determines the number of digits to the right of the point in the decimal representation of a number. It is of use in constructing fixed-point tick labels. It will, naturally, return large values, determined by Mathematica's Precision, for some numbers, such as non-terminating rationals. It accepts the option FractionDigitsBase, by default 10, for work with non-decimal representations. Some examples follow: FractionDigits@100D FractionDigits@1.25D FractionDigits@1 ê 3D 0 2 17 © Copyright 2008, Mark A. Caprio. Version 1.62
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : Yes Page Count : 10 XMP Toolkit : XMP toolkit 2.9.1-13, framework 1.6 About : uuid:45343329-91af-47f9-9abf-c47e76efa732 Producer : Acrobat Distiller 6.0 (Windows) Create Date : 2008:09:30 23:03:37-04:00 Creator Tool : PScript5.dll Version 5.2.2 Modify Date : 2008:09:30 23:03:37-04:00 Document ID : uuid:ca6b7477-1fc2-4a69-b0cf-25ca12164e60 Format : application/pdf Creator : mcaprio Title : CustomTicksGuide.nb Author : mcaprioEXIF Metadata provided by EXIF.tools