Draw Arrows outside of content-area of TikZ The 2019 Stack Overflow Developer Survey Results...

How technical should a Scrum Master be to effectively remove impediments?

Return to UK after having been refused entry years ago

slides for 30min~1hr skype tenure track application interview

Can one be advised by a professor who is very far away?

A poker game description that does not feel gimmicky

What tool would a Roman-age civilization have for the breaking of silver and other metals into dust?

What does ひと匙 mean in this manga and has it been used colloquially?

Falsification in Math vs Science

How are circuits which use complex ICs normally simulated?

Loose spokes after only a few rides

When should I buy a clipper card after flying to OAK?

Am I thawing this London Broil safely?

Identify boardgame from Big movie

Can we generate random numbers using irrational numbers like π and e?

Pokemon Turn Based battle (Python)

Looking for Correct Greek Translation for Heraclitus

Is there a symbol for a right arrow with a square in the middle?

Can a rogue use sneak attack with weapons that have the thrown property even if they are not thrown?

How to notate time signature switching consistently every measure

Is "plugging out" electronic devices an American expression?

Should I use my personal e-mail address, or my workplace one, when registering to external websites for work purposes?

Why do UK politicians seemingly ignore opinion polls on Brexit?

What do the Banks children have against barley water?

Did Section 31 appear in Star Trek: The Next Generation?



Draw Arrows outside of content-area of TikZ



The 2019 Stack Overflow Developer Survey Results Are Inplotting two time series with boundsGrouped bar chartHow do i get the x axis on top but keep a line on the bottomHow to prevent rounded and duplicated tick labels in pgfplots with fixed precision?How to hide empty (value 0) ybars with pgfplots?Show mark labels near marks and not centered in ybar interaval graphpgfplots wrongly calculate pgfplots@data@xmin in the case of mixed plots (with and without error bar)pgfplots: percentage in matrix plotCenter the axes in the coordinate originpgfplots: modify axis after end axis / cut tikzpicture after drawing












8















I have a rather standard tikz plot. To clarify that low values on the y axis are actually faster/better I want to draw an additional arrow outside of the actually plotting area as shown in the attachment.
I found various ways of drawing using draw but they all operate only within the content area of the plot - how can I draw outside of this area?



Here is a MWE of how I create my plot at the moment:



documentclass[11pt,a4paper]{article}
usepackage{pgfplots, pgfplotstable}
usepackage{tikz}

begin{document}
begin{figure}
begin{tikzpicture}[scale=0.75]
pgfplotsset{grid style={dashed,gray}}
begin{axis}[
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates {
(0.805, 10)
(0.85, 20)

};



end{axis}
end{tikzpicture}

end{figure}

end{document}


enter image description here










share|improve this question




















  • 2





    Are you using pgfplots or is this drawn in plain tikz? Please provide a minimum working example with some data to create the plot.

    – pschulz
    Jan 27 '17 at 9:17






  • 2





    Standard TikZ plot, or standard pgfplots plot? (I.e. an axis environment.) If the latter, add clip=false to the axis options, or draw the arrow outside the axis environment. For that method, it might be useful to add e.g. name=myaxis to the axis options, so you can access the anchors like myaxis.outer north west.

    – Torbjørn T.
    Jan 27 '17 at 9:17











  • I added a MWE of how I create the plot at the moment

    – toobee
    Jan 27 '17 at 9:51






  • 2





    @TorbjørnT. Also clip mode=individual is very handy (I have it on by default in my templates). This will clip graphs but not the added things (nodes, paths etc.)

    – Rmano
    Jan 27 '17 at 11:24











  • @Rmano Yes, I'm aware of that, but neglected to mention it in my comment..

    – Torbjørn T.
    Jan 27 '17 at 11:40
















8















I have a rather standard tikz plot. To clarify that low values on the y axis are actually faster/better I want to draw an additional arrow outside of the actually plotting area as shown in the attachment.
I found various ways of drawing using draw but they all operate only within the content area of the plot - how can I draw outside of this area?



Here is a MWE of how I create my plot at the moment:



documentclass[11pt,a4paper]{article}
usepackage{pgfplots, pgfplotstable}
usepackage{tikz}

begin{document}
begin{figure}
begin{tikzpicture}[scale=0.75]
pgfplotsset{grid style={dashed,gray}}
begin{axis}[
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates {
(0.805, 10)
(0.85, 20)

};



end{axis}
end{tikzpicture}

end{figure}

end{document}


enter image description here










share|improve this question




















  • 2





    Are you using pgfplots or is this drawn in plain tikz? Please provide a minimum working example with some data to create the plot.

    – pschulz
    Jan 27 '17 at 9:17






  • 2





    Standard TikZ plot, or standard pgfplots plot? (I.e. an axis environment.) If the latter, add clip=false to the axis options, or draw the arrow outside the axis environment. For that method, it might be useful to add e.g. name=myaxis to the axis options, so you can access the anchors like myaxis.outer north west.

    – Torbjørn T.
    Jan 27 '17 at 9:17











  • I added a MWE of how I create the plot at the moment

    – toobee
    Jan 27 '17 at 9:51






  • 2





    @TorbjørnT. Also clip mode=individual is very handy (I have it on by default in my templates). This will clip graphs but not the added things (nodes, paths etc.)

    – Rmano
    Jan 27 '17 at 11:24











  • @Rmano Yes, I'm aware of that, but neglected to mention it in my comment..

    – Torbjørn T.
    Jan 27 '17 at 11:40














8












8








8


1






I have a rather standard tikz plot. To clarify that low values on the y axis are actually faster/better I want to draw an additional arrow outside of the actually plotting area as shown in the attachment.
I found various ways of drawing using draw but they all operate only within the content area of the plot - how can I draw outside of this area?



Here is a MWE of how I create my plot at the moment:



documentclass[11pt,a4paper]{article}
usepackage{pgfplots, pgfplotstable}
usepackage{tikz}

begin{document}
begin{figure}
begin{tikzpicture}[scale=0.75]
pgfplotsset{grid style={dashed,gray}}
begin{axis}[
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates {
(0.805, 10)
(0.85, 20)

};



end{axis}
end{tikzpicture}

end{figure}

end{document}


enter image description here










share|improve this question
















I have a rather standard tikz plot. To clarify that low values on the y axis are actually faster/better I want to draw an additional arrow outside of the actually plotting area as shown in the attachment.
I found various ways of drawing using draw but they all operate only within the content area of the plot - how can I draw outside of this area?



Here is a MWE of how I create my plot at the moment:



documentclass[11pt,a4paper]{article}
usepackage{pgfplots, pgfplotstable}
usepackage{tikz}

begin{document}
begin{figure}
begin{tikzpicture}[scale=0.75]
pgfplotsset{grid style={dashed,gray}}
begin{axis}[
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates {
(0.805, 10)
(0.85, 20)

};



end{axis}
end{tikzpicture}

end{figure}

end{document}


enter image description here







tikz-pgf pgfplots






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 27 '17 at 9:52









Torbjørn T.

158k13256445




158k13256445










asked Jan 27 '17 at 9:01









toobeetoobee

23726




23726








  • 2





    Are you using pgfplots or is this drawn in plain tikz? Please provide a minimum working example with some data to create the plot.

    – pschulz
    Jan 27 '17 at 9:17






  • 2





    Standard TikZ plot, or standard pgfplots plot? (I.e. an axis environment.) If the latter, add clip=false to the axis options, or draw the arrow outside the axis environment. For that method, it might be useful to add e.g. name=myaxis to the axis options, so you can access the anchors like myaxis.outer north west.

    – Torbjørn T.
    Jan 27 '17 at 9:17











  • I added a MWE of how I create the plot at the moment

    – toobee
    Jan 27 '17 at 9:51






  • 2





    @TorbjørnT. Also clip mode=individual is very handy (I have it on by default in my templates). This will clip graphs but not the added things (nodes, paths etc.)

    – Rmano
    Jan 27 '17 at 11:24











  • @Rmano Yes, I'm aware of that, but neglected to mention it in my comment..

    – Torbjørn T.
    Jan 27 '17 at 11:40














  • 2





    Are you using pgfplots or is this drawn in plain tikz? Please provide a minimum working example with some data to create the plot.

    – pschulz
    Jan 27 '17 at 9:17






  • 2





    Standard TikZ plot, or standard pgfplots plot? (I.e. an axis environment.) If the latter, add clip=false to the axis options, or draw the arrow outside the axis environment. For that method, it might be useful to add e.g. name=myaxis to the axis options, so you can access the anchors like myaxis.outer north west.

    – Torbjørn T.
    Jan 27 '17 at 9:17











  • I added a MWE of how I create the plot at the moment

    – toobee
    Jan 27 '17 at 9:51






  • 2





    @TorbjørnT. Also clip mode=individual is very handy (I have it on by default in my templates). This will clip graphs but not the added things (nodes, paths etc.)

    – Rmano
    Jan 27 '17 at 11:24











  • @Rmano Yes, I'm aware of that, but neglected to mention it in my comment..

    – Torbjørn T.
    Jan 27 '17 at 11:40








2




2





Are you using pgfplots or is this drawn in plain tikz? Please provide a minimum working example with some data to create the plot.

– pschulz
Jan 27 '17 at 9:17





Are you using pgfplots or is this drawn in plain tikz? Please provide a minimum working example with some data to create the plot.

– pschulz
Jan 27 '17 at 9:17




2




2





Standard TikZ plot, or standard pgfplots plot? (I.e. an axis environment.) If the latter, add clip=false to the axis options, or draw the arrow outside the axis environment. For that method, it might be useful to add e.g. name=myaxis to the axis options, so you can access the anchors like myaxis.outer north west.

– Torbjørn T.
Jan 27 '17 at 9:17





Standard TikZ plot, or standard pgfplots plot? (I.e. an axis environment.) If the latter, add clip=false to the axis options, or draw the arrow outside the axis environment. For that method, it might be useful to add e.g. name=myaxis to the axis options, so you can access the anchors like myaxis.outer north west.

– Torbjørn T.
Jan 27 '17 at 9:17













I added a MWE of how I create the plot at the moment

– toobee
Jan 27 '17 at 9:51





I added a MWE of how I create the plot at the moment

– toobee
Jan 27 '17 at 9:51




2




2





@TorbjørnT. Also clip mode=individual is very handy (I have it on by default in my templates). This will clip graphs but not the added things (nodes, paths etc.)

– Rmano
Jan 27 '17 at 11:24





@TorbjørnT. Also clip mode=individual is very handy (I have it on by default in my templates). This will clip graphs but not the added things (nodes, paths etc.)

– Rmano
Jan 27 '17 at 11:24













@Rmano Yes, I'm aware of that, but neglected to mention it in my comment..

– Torbjørn T.
Jan 27 '17 at 11:40





@Rmano Yes, I'm aware of that, but neglected to mention it in my comment..

– Torbjørn T.
Jan 27 '17 at 11:40










2 Answers
2






active

oldest

votes


















13














We name the axis, so as to be able to access it outside the axis environment.



Then, we draw a line between some key points of it.



The output



enter image description here



The code



documentclass[tikz]{standalone}
usepackage{pgfplots}
usetikzlibrary{arrows}

begin{document}
begin{tikzpicture}[scale=0.75, >=stealth']
pgfplotsset{grid style={dashed,gray}}
begin{axis}
[
name=myGraph,
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates
{
(0.805, 10)
(0.85, 20)
};
end{axis}

defmyShift{-2cm}
draw [red, very thick, ->] ([xshift=myShift]myGraph.north west) -- ([xshift=myShift]myGraph.south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ;
%draw [red, very thick, ->] (myGraph.left of north west) -- (myGraph.left of south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ; % an alternative way
end{tikzpicture}
end{document}


Cheers,






share|improve this answer



















  • 1





    I prefer your commented alternative solution, because this has the advantage that one doesn't have to adjust a "one time set" xshift in case the (horizontal) size of an x label or the size of the yticklabels changes.

    – Stefan Pinnow
    Jan 27 '17 at 11:52











  • Thank you for the good advice. Should I edit the answer ?

    – marsupilam
    Jan 27 '17 at 12:09











  • That's up to you. It is your answer. Both solutions are valid and could be better depending on the situation. (Every solution has its pros and cons.) I (personally) just think that the commented answer is the one that more often would be "easier" compared to the non-commented one ;)

    – Stefan Pinnow
    Jan 27 '17 at 12:15



















12














EDIT: Changed rel axis cs to axis description cs as suggested in the comments.



You can use the axis description cs coordinate system for stuff like this:



documentclass{article}

usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}
[
grid style = {dashed, gray},
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
clip = false % <--- Important
]
addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates { (0.805, 10) (0.85, 20) };
% add annotation here:
draw[red, ->] ([xshift = -2cm] axis description cs:0, 1) -- node[left] { Faster } ([xshift = -2cm] axis description cs:0, 0);
end{axis}
end{tikzpicture}
end{document}


Picture of answer
The point (axis description cs:0, 1) is the upper left point, (axis description cs:0, 0) is the lower left point. Both points are shifted by 2cm (arbitrary, choose for your taste). Note that you have to turn off clipping in the axis environment, otherwise all stuff drawn outside the axis will be not visible.



I always have the feeling, things like this can be solved better. In my opinion, you should always choose your units and things you want to show to reflect your point. In this case, maybe it would be possible to use the inverse of time (perhaps frequency) to plot the data? I don't know what you are showing, but keep in mind that it's better (in my opinion) to solve things not by clever technical/texnical tricks (adding a custom annotation) than by using the right visualization method.






share|improve this answer


























  • Good point about frequency vs. (response ?) time. One could also add a title stating "lower time is faster".

    – marsupilam
    Jan 27 '17 at 10:20








  • 1





    I would prefer to use axis description cs instead of rel axis cs, because it is independent of axis reversals or skewed axes. To show what I mean, add x dir=reverse, to the axis options and compare both results ...

    – Stefan Pinnow
    Jan 27 '17 at 12:22











  • Ah, interesting. I was always wondering about the difference of the two.

    – pschulz
    Jan 27 '17 at 15:55








  • 1





    You should also change the description below the figure ...

    – Stefan Pinnow
    Jan 27 '17 at 16:04












Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f350692%2fdraw-arrows-outside-of-content-area-of-tikz%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









13














We name the axis, so as to be able to access it outside the axis environment.



Then, we draw a line between some key points of it.



The output



enter image description here



The code



documentclass[tikz]{standalone}
usepackage{pgfplots}
usetikzlibrary{arrows}

begin{document}
begin{tikzpicture}[scale=0.75, >=stealth']
pgfplotsset{grid style={dashed,gray}}
begin{axis}
[
name=myGraph,
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates
{
(0.805, 10)
(0.85, 20)
};
end{axis}

defmyShift{-2cm}
draw [red, very thick, ->] ([xshift=myShift]myGraph.north west) -- ([xshift=myShift]myGraph.south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ;
%draw [red, very thick, ->] (myGraph.left of north west) -- (myGraph.left of south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ; % an alternative way
end{tikzpicture}
end{document}


Cheers,






share|improve this answer



















  • 1





    I prefer your commented alternative solution, because this has the advantage that one doesn't have to adjust a "one time set" xshift in case the (horizontal) size of an x label or the size of the yticklabels changes.

    – Stefan Pinnow
    Jan 27 '17 at 11:52











  • Thank you for the good advice. Should I edit the answer ?

    – marsupilam
    Jan 27 '17 at 12:09











  • That's up to you. It is your answer. Both solutions are valid and could be better depending on the situation. (Every solution has its pros and cons.) I (personally) just think that the commented answer is the one that more often would be "easier" compared to the non-commented one ;)

    – Stefan Pinnow
    Jan 27 '17 at 12:15
















13














We name the axis, so as to be able to access it outside the axis environment.



Then, we draw a line between some key points of it.



The output



enter image description here



The code



documentclass[tikz]{standalone}
usepackage{pgfplots}
usetikzlibrary{arrows}

begin{document}
begin{tikzpicture}[scale=0.75, >=stealth']
pgfplotsset{grid style={dashed,gray}}
begin{axis}
[
name=myGraph,
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates
{
(0.805, 10)
(0.85, 20)
};
end{axis}

defmyShift{-2cm}
draw [red, very thick, ->] ([xshift=myShift]myGraph.north west) -- ([xshift=myShift]myGraph.south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ;
%draw [red, very thick, ->] (myGraph.left of north west) -- (myGraph.left of south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ; % an alternative way
end{tikzpicture}
end{document}


Cheers,






share|improve this answer



















  • 1





    I prefer your commented alternative solution, because this has the advantage that one doesn't have to adjust a "one time set" xshift in case the (horizontal) size of an x label or the size of the yticklabels changes.

    – Stefan Pinnow
    Jan 27 '17 at 11:52











  • Thank you for the good advice. Should I edit the answer ?

    – marsupilam
    Jan 27 '17 at 12:09











  • That's up to you. It is your answer. Both solutions are valid and could be better depending on the situation. (Every solution has its pros and cons.) I (personally) just think that the commented answer is the one that more often would be "easier" compared to the non-commented one ;)

    – Stefan Pinnow
    Jan 27 '17 at 12:15














13












13








13







We name the axis, so as to be able to access it outside the axis environment.



Then, we draw a line between some key points of it.



The output



enter image description here



The code



documentclass[tikz]{standalone}
usepackage{pgfplots}
usetikzlibrary{arrows}

begin{document}
begin{tikzpicture}[scale=0.75, >=stealth']
pgfplotsset{grid style={dashed,gray}}
begin{axis}
[
name=myGraph,
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates
{
(0.805, 10)
(0.85, 20)
};
end{axis}

defmyShift{-2cm}
draw [red, very thick, ->] ([xshift=myShift]myGraph.north west) -- ([xshift=myShift]myGraph.south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ;
%draw [red, very thick, ->] (myGraph.left of north west) -- (myGraph.left of south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ; % an alternative way
end{tikzpicture}
end{document}


Cheers,






share|improve this answer













We name the axis, so as to be able to access it outside the axis environment.



Then, we draw a line between some key points of it.



The output



enter image description here



The code



documentclass[tikz]{standalone}
usepackage{pgfplots}
usetikzlibrary{arrows}

begin{document}
begin{tikzpicture}[scale=0.75, >=stealth']
pgfplotsset{grid style={dashed,gray}}
begin{axis}
[
name=myGraph,
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
]

addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates
{
(0.805, 10)
(0.85, 20)
};
end{axis}

defmyShift{-2cm}
draw [red, very thick, ->] ([xshift=myShift]myGraph.north west) -- ([xshift=myShift]myGraph.south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ;
%draw [red, very thick, ->] (myGraph.left of north west) -- (myGraph.left of south west) node [midway, rotate=90, fill=white, yshift=2pt] {faster} ; % an alternative way
end{tikzpicture}
end{document}


Cheers,







share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 27 '17 at 10:09









marsupilammarsupilam

5,7161935




5,7161935








  • 1





    I prefer your commented alternative solution, because this has the advantage that one doesn't have to adjust a "one time set" xshift in case the (horizontal) size of an x label or the size of the yticklabels changes.

    – Stefan Pinnow
    Jan 27 '17 at 11:52











  • Thank you for the good advice. Should I edit the answer ?

    – marsupilam
    Jan 27 '17 at 12:09











  • That's up to you. It is your answer. Both solutions are valid and could be better depending on the situation. (Every solution has its pros and cons.) I (personally) just think that the commented answer is the one that more often would be "easier" compared to the non-commented one ;)

    – Stefan Pinnow
    Jan 27 '17 at 12:15














  • 1





    I prefer your commented alternative solution, because this has the advantage that one doesn't have to adjust a "one time set" xshift in case the (horizontal) size of an x label or the size of the yticklabels changes.

    – Stefan Pinnow
    Jan 27 '17 at 11:52











  • Thank you for the good advice. Should I edit the answer ?

    – marsupilam
    Jan 27 '17 at 12:09











  • That's up to you. It is your answer. Both solutions are valid and could be better depending on the situation. (Every solution has its pros and cons.) I (personally) just think that the commented answer is the one that more often would be "easier" compared to the non-commented one ;)

    – Stefan Pinnow
    Jan 27 '17 at 12:15








1




1





I prefer your commented alternative solution, because this has the advantage that one doesn't have to adjust a "one time set" xshift in case the (horizontal) size of an x label or the size of the yticklabels changes.

– Stefan Pinnow
Jan 27 '17 at 11:52





I prefer your commented alternative solution, because this has the advantage that one doesn't have to adjust a "one time set" xshift in case the (horizontal) size of an x label or the size of the yticklabels changes.

– Stefan Pinnow
Jan 27 '17 at 11:52













Thank you for the good advice. Should I edit the answer ?

– marsupilam
Jan 27 '17 at 12:09





Thank you for the good advice. Should I edit the answer ?

– marsupilam
Jan 27 '17 at 12:09













That's up to you. It is your answer. Both solutions are valid and could be better depending on the situation. (Every solution has its pros and cons.) I (personally) just think that the commented answer is the one that more often would be "easier" compared to the non-commented one ;)

– Stefan Pinnow
Jan 27 '17 at 12:15





That's up to you. It is your answer. Both solutions are valid and could be better depending on the situation. (Every solution has its pros and cons.) I (personally) just think that the commented answer is the one that more often would be "easier" compared to the non-commented one ;)

– Stefan Pinnow
Jan 27 '17 at 12:15











12














EDIT: Changed rel axis cs to axis description cs as suggested in the comments.



You can use the axis description cs coordinate system for stuff like this:



documentclass{article}

usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}
[
grid style = {dashed, gray},
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
clip = false % <--- Important
]
addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates { (0.805, 10) (0.85, 20) };
% add annotation here:
draw[red, ->] ([xshift = -2cm] axis description cs:0, 1) -- node[left] { Faster } ([xshift = -2cm] axis description cs:0, 0);
end{axis}
end{tikzpicture}
end{document}


Picture of answer
The point (axis description cs:0, 1) is the upper left point, (axis description cs:0, 0) is the lower left point. Both points are shifted by 2cm (arbitrary, choose for your taste). Note that you have to turn off clipping in the axis environment, otherwise all stuff drawn outside the axis will be not visible.



I always have the feeling, things like this can be solved better. In my opinion, you should always choose your units and things you want to show to reflect your point. In this case, maybe it would be possible to use the inverse of time (perhaps frequency) to plot the data? I don't know what you are showing, but keep in mind that it's better (in my opinion) to solve things not by clever technical/texnical tricks (adding a custom annotation) than by using the right visualization method.






share|improve this answer


























  • Good point about frequency vs. (response ?) time. One could also add a title stating "lower time is faster".

    – marsupilam
    Jan 27 '17 at 10:20








  • 1





    I would prefer to use axis description cs instead of rel axis cs, because it is independent of axis reversals or skewed axes. To show what I mean, add x dir=reverse, to the axis options and compare both results ...

    – Stefan Pinnow
    Jan 27 '17 at 12:22











  • Ah, interesting. I was always wondering about the difference of the two.

    – pschulz
    Jan 27 '17 at 15:55








  • 1





    You should also change the description below the figure ...

    – Stefan Pinnow
    Jan 27 '17 at 16:04
















12














EDIT: Changed rel axis cs to axis description cs as suggested in the comments.



You can use the axis description cs coordinate system for stuff like this:



documentclass{article}

usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}
[
grid style = {dashed, gray},
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
clip = false % <--- Important
]
addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates { (0.805, 10) (0.85, 20) };
% add annotation here:
draw[red, ->] ([xshift = -2cm] axis description cs:0, 1) -- node[left] { Faster } ([xshift = -2cm] axis description cs:0, 0);
end{axis}
end{tikzpicture}
end{document}


Picture of answer
The point (axis description cs:0, 1) is the upper left point, (axis description cs:0, 0) is the lower left point. Both points are shifted by 2cm (arbitrary, choose for your taste). Note that you have to turn off clipping in the axis environment, otherwise all stuff drawn outside the axis will be not visible.



I always have the feeling, things like this can be solved better. In my opinion, you should always choose your units and things you want to show to reflect your point. In this case, maybe it would be possible to use the inverse of time (perhaps frequency) to plot the data? I don't know what you are showing, but keep in mind that it's better (in my opinion) to solve things not by clever technical/texnical tricks (adding a custom annotation) than by using the right visualization method.






share|improve this answer


























  • Good point about frequency vs. (response ?) time. One could also add a title stating "lower time is faster".

    – marsupilam
    Jan 27 '17 at 10:20








  • 1





    I would prefer to use axis description cs instead of rel axis cs, because it is independent of axis reversals or skewed axes. To show what I mean, add x dir=reverse, to the axis options and compare both results ...

    – Stefan Pinnow
    Jan 27 '17 at 12:22











  • Ah, interesting. I was always wondering about the difference of the two.

    – pschulz
    Jan 27 '17 at 15:55








  • 1





    You should also change the description below the figure ...

    – Stefan Pinnow
    Jan 27 '17 at 16:04














12












12








12







EDIT: Changed rel axis cs to axis description cs as suggested in the comments.



You can use the axis description cs coordinate system for stuff like this:



documentclass{article}

usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}
[
grid style = {dashed, gray},
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
clip = false % <--- Important
]
addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates { (0.805, 10) (0.85, 20) };
% add annotation here:
draw[red, ->] ([xshift = -2cm] axis description cs:0, 1) -- node[left] { Faster } ([xshift = -2cm] axis description cs:0, 0);
end{axis}
end{tikzpicture}
end{document}


Picture of answer
The point (axis description cs:0, 1) is the upper left point, (axis description cs:0, 0) is the lower left point. Both points are shifted by 2cm (arbitrary, choose for your taste). Note that you have to turn off clipping in the axis environment, otherwise all stuff drawn outside the axis will be not visible.



I always have the feeling, things like this can be solved better. In my opinion, you should always choose your units and things you want to show to reflect your point. In this case, maybe it would be possible to use the inverse of time (perhaps frequency) to plot the data? I don't know what you are showing, but keep in mind that it's better (in my opinion) to solve things not by clever technical/texnical tricks (adding a custom annotation) than by using the right visualization method.






share|improve this answer















EDIT: Changed rel axis cs to axis description cs as suggested in the comments.



You can use the axis description cs coordinate system for stuff like this:



documentclass{article}

usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}
[
grid style = {dashed, gray},
xlabel={X},
ylabel=time,
xmin=0.8,
xmax=1.0,
ymin=1,
ymax=200,
xmajorgrids=true,
ymajorgrids=true,
clip = false % <--- Important
]
addplot+
[
black,
mark options={fill= black},
only marks,
mark size=2,
mark=square*,
]
coordinates { (0.805, 10) (0.85, 20) };
% add annotation here:
draw[red, ->] ([xshift = -2cm] axis description cs:0, 1) -- node[left] { Faster } ([xshift = -2cm] axis description cs:0, 0);
end{axis}
end{tikzpicture}
end{document}


Picture of answer
The point (axis description cs:0, 1) is the upper left point, (axis description cs:0, 0) is the lower left point. Both points are shifted by 2cm (arbitrary, choose for your taste). Note that you have to turn off clipping in the axis environment, otherwise all stuff drawn outside the axis will be not visible.



I always have the feeling, things like this can be solved better. In my opinion, you should always choose your units and things you want to show to reflect your point. In this case, maybe it would be possible to use the inverse of time (perhaps frequency) to plot the data? I don't know what you are showing, but keep in mind that it's better (in my opinion) to solve things not by clever technical/texnical tricks (adding a custom annotation) than by using the right visualization method.







share|improve this answer














share|improve this answer



share|improve this answer








edited 10 mins ago

























answered Jan 27 '17 at 10:08









pschulzpschulz

980718




980718













  • Good point about frequency vs. (response ?) time. One could also add a title stating "lower time is faster".

    – marsupilam
    Jan 27 '17 at 10:20








  • 1





    I would prefer to use axis description cs instead of rel axis cs, because it is independent of axis reversals or skewed axes. To show what I mean, add x dir=reverse, to the axis options and compare both results ...

    – Stefan Pinnow
    Jan 27 '17 at 12:22











  • Ah, interesting. I was always wondering about the difference of the two.

    – pschulz
    Jan 27 '17 at 15:55








  • 1





    You should also change the description below the figure ...

    – Stefan Pinnow
    Jan 27 '17 at 16:04



















  • Good point about frequency vs. (response ?) time. One could also add a title stating "lower time is faster".

    – marsupilam
    Jan 27 '17 at 10:20








  • 1





    I would prefer to use axis description cs instead of rel axis cs, because it is independent of axis reversals or skewed axes. To show what I mean, add x dir=reverse, to the axis options and compare both results ...

    – Stefan Pinnow
    Jan 27 '17 at 12:22











  • Ah, interesting. I was always wondering about the difference of the two.

    – pschulz
    Jan 27 '17 at 15:55








  • 1





    You should also change the description below the figure ...

    – Stefan Pinnow
    Jan 27 '17 at 16:04

















Good point about frequency vs. (response ?) time. One could also add a title stating "lower time is faster".

– marsupilam
Jan 27 '17 at 10:20







Good point about frequency vs. (response ?) time. One could also add a title stating "lower time is faster".

– marsupilam
Jan 27 '17 at 10:20






1




1





I would prefer to use axis description cs instead of rel axis cs, because it is independent of axis reversals or skewed axes. To show what I mean, add x dir=reverse, to the axis options and compare both results ...

– Stefan Pinnow
Jan 27 '17 at 12:22





I would prefer to use axis description cs instead of rel axis cs, because it is independent of axis reversals or skewed axes. To show what I mean, add x dir=reverse, to the axis options and compare both results ...

– Stefan Pinnow
Jan 27 '17 at 12:22













Ah, interesting. I was always wondering about the difference of the two.

– pschulz
Jan 27 '17 at 15:55







Ah, interesting. I was always wondering about the difference of the two.

– pschulz
Jan 27 '17 at 15:55






1




1





You should also change the description below the figure ...

– Stefan Pinnow
Jan 27 '17 at 16:04





You should also change the description below the figure ...

– Stefan Pinnow
Jan 27 '17 at 16:04


















draft saved

draft discarded




















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f350692%2fdraw-arrows-outside-of-content-area-of-tikz%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Why does my Macbook overheat and use so much CPU and energy when on YouTube?Why do so many insist on using...

How to prevent page numbers from appearing on glossaries?How to remove a dot and a page number in the...

Puerta de Hutt Referencias Enlaces externos Menú de navegación15°58′00″S 5°42′00″O /...