Tag Info

Hot answers tagged

9

The groupplots library keeps the value of the current plot in the \pgfplots@group@current@plot count. So you can create the titles automatically using the alphalph package and the following style: \makeatletter \pgfplotsset{ auto title/.style={ title=(\AlphAlph{\pgfplots@group@current@plot}) } } \makeatother Then you just add auto title to ...


8

To place the pie charts, you can use \subcaptionbox (from the subcaption package); the code for the pie inclusion can be shortened with the help of a new command \putpie; using two minipages inside a \makebox you can place the legend at the desired location: \documentclass{article} \usepackage{pgfplots, pgfplotstable} \usepackage{subcaption} ...


6

You simply need to adjust the height of the color bar plot. This can easily be accomplished by doing: every colorbar/.append style={height=<height specification>} However, often you will use different heights for different groupplots. Therefore a more general approach would be: every colorbar/.append style={height= ...


5

Short answer: Paste the following code snippet into your preamble, and then define your overall labels using groupplot ylabel=<label> (they can be styled using every groupplot y label/.style): \makeatletter \pgfplotsset{ groupplot xlabel/.initial={}, every groupplot x label/.style={ at={($({\pgfplots@group@name\space ...


5

To plot spectrometer output in this format, which is apparently something of a standard, you can use a coordinate transform. If you set x coord trafo/.code={ \pgfmathparse{#1-0.5*(#1-2000)*(#1>2000)} } the x unit distance above 2000 is halved. To get correct tick labels, you also need to define the inverse transform: x coord inv trafo/.code={ ...


5

You could use two groupplots environments, where the height of the axes in the second is half that of the first. To align them properly I placed the first sub-plot of the second groupplot relative to the first groupplot, with \nextgroupplot[anchor=north west, at={($(left plots c1r1.north east) + (0.2cm,0)$)}] left plots is a label for the first ...


5

Based on the comment by @zeroth, I was able to put together a manually aligned set of plots. I'm pretty sure the code can be improved (particularly the placement of the figure caption) and I'm not at all sure what problems this might have (with, for instance, externalize), but this solves my problem. \documentclass{article} \usepackage{pgfplots} ...


4

You can redefine the every axis y label style by increasing the xshift value as required. \documentclass{standalone} \usepackage{pgfplots} \usepgfplotslibrary{groupplots} \pgfplotsset{compat=1.6, ylabsh/.style={every axis y label/.style={at={(0,0.5)}, xshift=#1, rotate=90}}} \begin{document} \begin{tikzpicture} \begin{groupplot} ...


4

(I used random numbers because I was too lazy to save your four data files.) Here a suggestion that gives Your first two requirements can be achieved by changing the title style. This actually appends the options you define to the node creating the title. Adding some negative yshift moves it closer to the axis, filling it adds the background color. You ...


3

To add legend to a place to the right of the plots, one needs to add a legend style to the groupplot environment where at=() is the key. The (0,0) means the lower left of the corner while (1,1) means the upper right corner. Such system is called axis description cs documented on page 103. [legend style={at={(1.03,1.4)}, anchor=north west} Code: ...


3

Thanks to Jake's suggestion, a significant compression of my original solution is possible (since I don't know a thing about tikz). Also, a new version of stackengine should hit the streets this weekend. The syntax I used here will work in both old and new versions. You can control the inter-plot separation, if desired (i.e., normal hspacing will work ...


3

Pgfplots has two parameters which control the selection of default ticks: max space between ticks try min ticks The first parameter is the primary parameter, it is used to derive the number of ticks. If this number is below try min ticks, pgfplots increases the number. Note that pgfplots only accepts specific tick locations, depending on the data range. ...


3

You can adjust the padding between the plots using the horizontal sep and vertical sep options in the group style. To adjust the style of the tick marks, use tick style=gray!50: \documentclass{article} \usepackage[demo]{graphicx} \usepackage{pgfplots} \usepgfplotslibrary{groupplots} \begin{document} \begin{tikzpicture} \pgfplotsset{% width=4cm, ...


3

You don't have to use Tikz to add the labels, you can add them afterwards to the constructed box. \documentclass{standalone} \usepackage{graphicx} \usepackage{siunitx} \usepackage{tikz} \usepackage{pgfplots} \usepackage{array} \usepgfplotslibrary{groupplots} \pgfplotsset{compat=newest} \pgfplotsset{plot coordinates/math parser=false} \begin{document} ...


2

In my mind, groupplots aren't really intended for this kind of thing. I suggest using two axis environments instead. Place a \coordinate in the larger axis using the rel axis cs or axis cs coordinate system, and place the smaller axis at this coordinate. In the code below you'll see \coordinate (otheraxis) at (rel axis cs:0.15,0.5); in the first axis, ...


2

You have clip=false in the groupplot options, so this would happen. Make it clip=true. If you had any other paths (\draw, \node etc.) that went outside the axis limits, you could add clip mode=individual to enable clipping of plot lines but not other paths within the axis. That is not needed here however.


2

This solution reads the data from a file. It let's you chose haw many plots there are in a row and how they should be scaled. But it will not break across pages, so at this number of plots you should use the [p] float placement specifier: Code \documentclass[parskip]{scrartcl} \usepackage[margin=15mm]{geometry} \usepackage{tikz} \usepackage{pgfplots} ...


2

I don't know how your document could work with that strange preamble (\usetikzlibrary{pgfplots}?). Anyway, you have to set both tick pos and ticklabel pos to right, then there is no need to set the anchor. \documentclass{article} \usepackage{pgfplots} \usepgfplotslibrary{groupplots} \pgfplotsset{compat=1.6, /pgf/number format/.cd, 1000 ...


2

You can use the every plot/.style key to enter the common settings in that group \documentclass{article} \usepackage{pgfplots} \usepgfplotslibrary{groupplots} \begin{document} \begin{tikzpicture} \begin{groupplot}[group style={group size=2 by 2, every plot/.style={ xmin=-1, ...


2

Specifying domain does not set the xmin, xmax etc. for the plot. It simply sets the function evaluation domain and then afterwards the min/max limits are set from the data. Due to rounding errors you can expect to see the behaviour you have. In general: Anytime you use groupplots and sharing axis domains you should specify x/ymin AND x/ymax. So your ...


2

There is still something I'm not quite solving properly, though this gives the desired result. As I would have wanted it to work, you would use \startaddplot for your first plot and \nextaddplot for subsequent plots. But what happened is that the counter I used is somehow lagging in its step. So the crass fix I had to apply was initializing the counter to ...


1

As ClaudioFiandrino suggested, without the keys remember picture and overlay the code works. Here's the (almost) MWE (probably some packages is useless or redundat). \documentclass{article} \usepackage[dvips]{graphicx} \usepackage[usenames,dvipsnames]{xcolor} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{latexsym} ...


1

For this case, as the best solution I have chosen manually placing the plots in tikzpicture environment. The source code is shown here and the output below. \begin{tikzpicture}[scale = 0.63] \foreach \r in {0,1,2,3,4,5,6} { \foreach \c in {0,1,2} { \draw ({\c*6.5+0.5},{26-(\r+1)*4+0.5}) -- ({(\c+1)*6.5-0.5},{26-(\r+1)*4+0.5}); % ...



Only top voted, non community-wiki answers of a minimum length are eligible