How to adjust subplots spacing and to place y labels in matplotlib?
I have to use matplotlib to produce the following layout.
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
I'd like to add some space between second and third columns to place a common ylabel indicated by the red marker. I got stuck at this point. Anyone can give me some guidance? Thank you!
python-3.x matplotlib subplot
add a comment |
I have to use matplotlib to produce the following layout.
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
I'd like to add some space between second and third columns to place a common ylabel indicated by the red marker. I got stuck at this point. Anyone can give me some guidance? Thank you!
python-3.x matplotlib subplot
add a comment |
I have to use matplotlib to produce the following layout.
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
I'd like to add some space between second and third columns to place a common ylabel indicated by the red marker. I got stuck at this point. Anyone can give me some guidance? Thank you!
python-3.x matplotlib subplot
I have to use matplotlib to produce the following layout.
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
I'd like to add some space between second and third columns to place a common ylabel indicated by the red marker. I got stuck at this point. Anyone can give me some guidance? Thank you!
python-3.x matplotlib subplot
python-3.x matplotlib subplot
asked Nov 25 '18 at 12:26
ted930511ted930511
19114
19114
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If your label is not long, you can simply add it to the middle graph and use tight_layout
to format it:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
ax.set_ylabel("label for all")
plt.tight_layout()
plt.show()
This will not work for very long labels, though, because tight_layout
will misinterpret the height of the middle row. In this case, we can simply replace the text with the longer version afterwards:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
mylabel = ax.set_ylabel("dummy")
plt.tight_layout()
mylabel.set_text("not a dummy any more but a very very very loooooooooooooooooong label")
plt.show()
Sample output:
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2fstackoverflow.com%2fquestions%2f53467417%2fhow-to-adjust-subplots-spacing-and-to-place-y-labels-in-matplotlib%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
If your label is not long, you can simply add it to the middle graph and use tight_layout
to format it:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
ax.set_ylabel("label for all")
plt.tight_layout()
plt.show()
This will not work for very long labels, though, because tight_layout
will misinterpret the height of the middle row. In this case, we can simply replace the text with the longer version afterwards:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
mylabel = ax.set_ylabel("dummy")
plt.tight_layout()
mylabel.set_text("not a dummy any more but a very very very loooooooooooooooooong label")
plt.show()
Sample output:
add a comment |
If your label is not long, you can simply add it to the middle graph and use tight_layout
to format it:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
ax.set_ylabel("label for all")
plt.tight_layout()
plt.show()
This will not work for very long labels, though, because tight_layout
will misinterpret the height of the middle row. In this case, we can simply replace the text with the longer version afterwards:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
mylabel = ax.set_ylabel("dummy")
plt.tight_layout()
mylabel.set_text("not a dummy any more but a very very very loooooooooooooooooong label")
plt.show()
Sample output:
add a comment |
If your label is not long, you can simply add it to the middle graph and use tight_layout
to format it:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
ax.set_ylabel("label for all")
plt.tight_layout()
plt.show()
This will not work for very long labels, though, because tight_layout
will misinterpret the height of the middle row. In this case, we can simply replace the text with the longer version afterwards:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
mylabel = ax.set_ylabel("dummy")
plt.tight_layout()
mylabel.set_text("not a dummy any more but a very very very loooooooooooooooooong label")
plt.show()
Sample output:
If your label is not long, you can simply add it to the middle graph and use tight_layout
to format it:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
ax.set_ylabel("label for all")
plt.tight_layout()
plt.show()
This will not work for very long labels, though, because tight_layout
will misinterpret the height of the middle row. In this case, we can simply replace the text with the longer version afterwards:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
mylabel = ax.set_ylabel("dummy")
plt.tight_layout()
mylabel.set_text("not a dummy any more but a very very very loooooooooooooooooong label")
plt.show()
Sample output:
answered Nov 25 '18 at 15:19
Mr. TMr. T
4,21391536
4,21391536
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- 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%2fstackoverflow.com%2fquestions%2f53467417%2fhow-to-adjust-subplots-spacing-and-to-place-y-labels-in-matplotlib%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