pgfplots: “axis on top” will cross out ybar value nodes?
Assumed we have a simple ybar
diagram including ymajorgrids
.
Minimum Working Example (MWE):
documentclass{standalone}
usepackage{pgfplots}
begin{document}
begin{tikzpicture}
begin{axis}[
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,font=footnotesize},
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
Screenshot of the result:
Screenshot of the issue:
Description of the issue:
As you can see, the command axis on top
will cause a cross out of the ybar
value nodes by the dominating ymajorgrid
. How can I avoid the nodes to be crossed out (e.g. by putting the nodes on the very top layer)?
tikz-pgf pgfplots nodes axis layers
add a comment |
Assumed we have a simple ybar
diagram including ymajorgrids
.
Minimum Working Example (MWE):
documentclass{standalone}
usepackage{pgfplots}
begin{document}
begin{tikzpicture}
begin{axis}[
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,font=footnotesize},
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
Screenshot of the result:
Screenshot of the issue:
Description of the issue:
As you can see, the command axis on top
will cause a cross out of the ybar
value nodes by the dominating ymajorgrid
. How can I avoid the nodes to be crossed out (e.g. by putting the nodes on the very top layer)?
tikz-pgf pgfplots nodes axis layers
add a comment |
Assumed we have a simple ybar
diagram including ymajorgrids
.
Minimum Working Example (MWE):
documentclass{standalone}
usepackage{pgfplots}
begin{document}
begin{tikzpicture}
begin{axis}[
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,font=footnotesize},
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
Screenshot of the result:
Screenshot of the issue:
Description of the issue:
As you can see, the command axis on top
will cause a cross out of the ybar
value nodes by the dominating ymajorgrid
. How can I avoid the nodes to be crossed out (e.g. by putting the nodes on the very top layer)?
tikz-pgf pgfplots nodes axis layers
Assumed we have a simple ybar
diagram including ymajorgrids
.
Minimum Working Example (MWE):
documentclass{standalone}
usepackage{pgfplots}
begin{document}
begin{tikzpicture}
begin{axis}[
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,font=footnotesize},
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
Screenshot of the result:
Screenshot of the issue:
Description of the issue:
As you can see, the command axis on top
will cause a cross out of the ybar
value nodes by the dominating ymajorgrid
. How can I avoid the nodes to be crossed out (e.g. by putting the nodes on the very top layer)?
tikz-pgf pgfplots nodes axis layers
tikz-pgf pgfplots nodes axis layers
asked 5 hours ago
DaveDave
1,195619
1,195619
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
This problem is actually slightly more involved than I thought (or I am missing something basic). axis on top
is a shorthand for some specific layer configuration, the details can be found in section 4.27.2 Using Predefined Layers of the pgfplots manual. For many purposes, one only needs to change the ordering of the layers, but as far as I can see this does not help with this very problem. What can one do? I looked up what nodes near coords
does (yes, sometimes a simple less /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
helps avoid the need to read the manual ;-): it sends specific instructions to scatter/@pre marker code
. So all one needs to do is to append scatter/@pre marker code
by pgfplotsonlayer{axis foreground}
, and of course close the layer at the end by appending endpgfplotsonlayer
to catter/@post marker code
.
documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[clip mode=individual,
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,
font=footnotesize},
scatter/@pre marker code/.append code={pgfplotsonlayer{axis foreground}},
scatter/@post marker code/.append code={endpgfplotsonlayer}
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
As you can see, the grid lines run in front of the bars but behind the nodes near coords
.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f483585%2fpgfplots-axis-on-top-will-cross-out-ybar-value-nodes%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This problem is actually slightly more involved than I thought (or I am missing something basic). axis on top
is a shorthand for some specific layer configuration, the details can be found in section 4.27.2 Using Predefined Layers of the pgfplots manual. For many purposes, one only needs to change the ordering of the layers, but as far as I can see this does not help with this very problem. What can one do? I looked up what nodes near coords
does (yes, sometimes a simple less /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
helps avoid the need to read the manual ;-): it sends specific instructions to scatter/@pre marker code
. So all one needs to do is to append scatter/@pre marker code
by pgfplotsonlayer{axis foreground}
, and of course close the layer at the end by appending endpgfplotsonlayer
to catter/@post marker code
.
documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[clip mode=individual,
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,
font=footnotesize},
scatter/@pre marker code/.append code={pgfplotsonlayer{axis foreground}},
scatter/@post marker code/.append code={endpgfplotsonlayer}
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
As you can see, the grid lines run in front of the bars but behind the nodes near coords
.
add a comment |
This problem is actually slightly more involved than I thought (or I am missing something basic). axis on top
is a shorthand for some specific layer configuration, the details can be found in section 4.27.2 Using Predefined Layers of the pgfplots manual. For many purposes, one only needs to change the ordering of the layers, but as far as I can see this does not help with this very problem. What can one do? I looked up what nodes near coords
does (yes, sometimes a simple less /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
helps avoid the need to read the manual ;-): it sends specific instructions to scatter/@pre marker code
. So all one needs to do is to append scatter/@pre marker code
by pgfplotsonlayer{axis foreground}
, and of course close the layer at the end by appending endpgfplotsonlayer
to catter/@post marker code
.
documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[clip mode=individual,
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,
font=footnotesize},
scatter/@pre marker code/.append code={pgfplotsonlayer{axis foreground}},
scatter/@post marker code/.append code={endpgfplotsonlayer}
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
As you can see, the grid lines run in front of the bars but behind the nodes near coords
.
add a comment |
This problem is actually slightly more involved than I thought (or I am missing something basic). axis on top
is a shorthand for some specific layer configuration, the details can be found in section 4.27.2 Using Predefined Layers of the pgfplots manual. For many purposes, one only needs to change the ordering of the layers, but as far as I can see this does not help with this very problem. What can one do? I looked up what nodes near coords
does (yes, sometimes a simple less /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
helps avoid the need to read the manual ;-): it sends specific instructions to scatter/@pre marker code
. So all one needs to do is to append scatter/@pre marker code
by pgfplotsonlayer{axis foreground}
, and of course close the layer at the end by appending endpgfplotsonlayer
to catter/@post marker code
.
documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[clip mode=individual,
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,
font=footnotesize},
scatter/@pre marker code/.append code={pgfplotsonlayer{axis foreground}},
scatter/@post marker code/.append code={endpgfplotsonlayer}
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
As you can see, the grid lines run in front of the bars but behind the nodes near coords
.
This problem is actually slightly more involved than I thought (or I am missing something basic). axis on top
is a shorthand for some specific layer configuration, the details can be found in section 4.27.2 Using Predefined Layers of the pgfplots manual. For many purposes, one only needs to change the ordering of the layers, but as far as I can see this does not help with this very problem. What can one do? I looked up what nodes near coords
does (yes, sometimes a simple less /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
helps avoid the need to read the manual ;-): it sends specific instructions to scatter/@pre marker code
. So all one needs to do is to append scatter/@pre marker code
by pgfplotsonlayer{axis foreground}
, and of course close the layer at the end by appending endpgfplotsonlayer
to catter/@post marker code
.
documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[clip mode=individual,
ybar = 1.5mm,
ymin = 0,
ymax = 300,
set layers = true,
axis on top = true,
symbolic x coords = {Blub, Blab, Blop},
ymajorgrids = true,
nodes near coords,
nodes near coords align = {vertical},
nodes near coords style = {text=black},
every node near coord/.append style={rotate=90, anchor=west,
font=footnotesize},
scatter/@pre marker code/.append code={pgfplotsonlayer{axis foreground}},
scatter/@post marker code/.append code={endpgfplotsonlayer}
]
addplot coordinates {(Blab,180) (Blop,180) (Blub,180)};%
end{axis}
end{tikzpicture}
end{document}
As you can see, the grid lines run in front of the bars but behind the nodes near coords
.
answered 1 hour ago
marmotmarmot
115k5146277
115k5146277
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f483585%2fpgfplots-axis-on-top-will-cross-out-ybar-value-nodes%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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