layout problem of multiple heatmaps in one figure with matplotlib
I put multiple heatmaps in one figure with matplotlib. I cannot layout it well. Here is my code.
import matplotlib; matplotlib.use('agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(6,240,240)
y = np.random.rand(6,240,240)
t = np.random.rand(6,240,240)
plt.subplots_adjust(wspace=0.2, hspace=0.3)
c=1
for i in range(6):
ax=plt.subplot(6,3,c)
plt.imshow(x[i])
ax.set_title("x"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(y[i])
ax.set_title("y"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(t[i])
ax.set_title("t"+str(i))
c+=1
plt.tight_layout()
plt.savefig("test.png")
test.png looks like this.
I want to
- make each heatmap bigger
- reduce the margin between each heatmaps in row.
I tried to adjust by "subplots_adjust", but it doesn't work.
Additional information
According to ImportanceOfBeingErnest's comment, I removed tight_layout()
. It generated this.
It makes bigger each heatmap, but titles overlappes on subplots. And I still want to make each heatmap more bigger, and I want to reduce the margin in row.
matplotlib
add a comment |
I put multiple heatmaps in one figure with matplotlib. I cannot layout it well. Here is my code.
import matplotlib; matplotlib.use('agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(6,240,240)
y = np.random.rand(6,240,240)
t = np.random.rand(6,240,240)
plt.subplots_adjust(wspace=0.2, hspace=0.3)
c=1
for i in range(6):
ax=plt.subplot(6,3,c)
plt.imshow(x[i])
ax.set_title("x"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(y[i])
ax.set_title("y"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(t[i])
ax.set_title("t"+str(i))
c+=1
plt.tight_layout()
plt.savefig("test.png")
test.png looks like this.
I want to
- make each heatmap bigger
- reduce the margin between each heatmaps in row.
I tried to adjust by "subplots_adjust", but it doesn't work.
Additional information
According to ImportanceOfBeingErnest's comment, I removed tight_layout()
. It generated this.
It makes bigger each heatmap, but titles overlappes on subplots. And I still want to make each heatmap more bigger, and I want to reduce the margin in row.
matplotlib
Removeplt.tight_layout()
or at least callsubplots_adjust
after that.
– ImportanceOfBeingErnest
Jan 20 at 12:49
Thank you for your advice. I added information above.tight_layout()
seems to be needed to prevent overlapping.
– saitouena
Jan 20 at 13:40
Yeah, but now you can play withhspace
and until you're satisfied with the result. Here, probably something likehspace=1
or higher is needed. For the spacings in the rows, use higherleft
and lowerright
parameter. Most probably you also want to change the figure size.
– ImportanceOfBeingErnest
Jan 20 at 13:44
You should increase the height of the figure.
– gepcel
Jan 21 at 3:16
add a comment |
I put multiple heatmaps in one figure with matplotlib. I cannot layout it well. Here is my code.
import matplotlib; matplotlib.use('agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(6,240,240)
y = np.random.rand(6,240,240)
t = np.random.rand(6,240,240)
plt.subplots_adjust(wspace=0.2, hspace=0.3)
c=1
for i in range(6):
ax=plt.subplot(6,3,c)
plt.imshow(x[i])
ax.set_title("x"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(y[i])
ax.set_title("y"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(t[i])
ax.set_title("t"+str(i))
c+=1
plt.tight_layout()
plt.savefig("test.png")
test.png looks like this.
I want to
- make each heatmap bigger
- reduce the margin between each heatmaps in row.
I tried to adjust by "subplots_adjust", but it doesn't work.
Additional information
According to ImportanceOfBeingErnest's comment, I removed tight_layout()
. It generated this.
It makes bigger each heatmap, but titles overlappes on subplots. And I still want to make each heatmap more bigger, and I want to reduce the margin in row.
matplotlib
I put multiple heatmaps in one figure with matplotlib. I cannot layout it well. Here is my code.
import matplotlib; matplotlib.use('agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(6,240,240)
y = np.random.rand(6,240,240)
t = np.random.rand(6,240,240)
plt.subplots_adjust(wspace=0.2, hspace=0.3)
c=1
for i in range(6):
ax=plt.subplot(6,3,c)
plt.imshow(x[i])
ax.set_title("x"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(y[i])
ax.set_title("y"+str(i))
c+=1
ax=plt.subplot(6,3,c)
plt.imshow(t[i])
ax.set_title("t"+str(i))
c+=1
plt.tight_layout()
plt.savefig("test.png")
test.png looks like this.
I want to
- make each heatmap bigger
- reduce the margin between each heatmaps in row.
I tried to adjust by "subplots_adjust", but it doesn't work.
Additional information
According to ImportanceOfBeingErnest's comment, I removed tight_layout()
. It generated this.
It makes bigger each heatmap, but titles overlappes on subplots. And I still want to make each heatmap more bigger, and I want to reduce the margin in row.
matplotlib
matplotlib
edited Jan 20 at 13:39
saitouena
asked Jan 20 at 12:17
saitouenasaitouena
203
203
Removeplt.tight_layout()
or at least callsubplots_adjust
after that.
– ImportanceOfBeingErnest
Jan 20 at 12:49
Thank you for your advice. I added information above.tight_layout()
seems to be needed to prevent overlapping.
– saitouena
Jan 20 at 13:40
Yeah, but now you can play withhspace
and until you're satisfied with the result. Here, probably something likehspace=1
or higher is needed. For the spacings in the rows, use higherleft
and lowerright
parameter. Most probably you also want to change the figure size.
– ImportanceOfBeingErnest
Jan 20 at 13:44
You should increase the height of the figure.
– gepcel
Jan 21 at 3:16
add a comment |
Removeplt.tight_layout()
or at least callsubplots_adjust
after that.
– ImportanceOfBeingErnest
Jan 20 at 12:49
Thank you for your advice. I added information above.tight_layout()
seems to be needed to prevent overlapping.
– saitouena
Jan 20 at 13:40
Yeah, but now you can play withhspace
and until you're satisfied with the result. Here, probably something likehspace=1
or higher is needed. For the spacings in the rows, use higherleft
and lowerright
parameter. Most probably you also want to change the figure size.
– ImportanceOfBeingErnest
Jan 20 at 13:44
You should increase the height of the figure.
– gepcel
Jan 21 at 3:16
Remove
plt.tight_layout()
or at least call subplots_adjust
after that.– ImportanceOfBeingErnest
Jan 20 at 12:49
Remove
plt.tight_layout()
or at least call subplots_adjust
after that.– ImportanceOfBeingErnest
Jan 20 at 12:49
Thank you for your advice. I added information above.
tight_layout()
seems to be needed to prevent overlapping.– saitouena
Jan 20 at 13:40
Thank you for your advice. I added information above.
tight_layout()
seems to be needed to prevent overlapping.– saitouena
Jan 20 at 13:40
Yeah, but now you can play with
hspace
and until you're satisfied with the result. Here, probably something like hspace=1
or higher is needed. For the spacings in the rows, use higher left
and lower right
parameter. Most probably you also want to change the figure size.– ImportanceOfBeingErnest
Jan 20 at 13:44
Yeah, but now you can play with
hspace
and until you're satisfied with the result. Here, probably something like hspace=1
or higher is needed. For the spacings in the rows, use higher left
and lower right
parameter. Most probably you also want to change the figure size.– ImportanceOfBeingErnest
Jan 20 at 13:44
You should increase the height of the figure.
– gepcel
Jan 21 at 3:16
You should increase the height of the figure.
– gepcel
Jan 21 at 3:16
add a comment |
0
active
oldest
votes
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%2f54276344%2flayout-problem-of-multiple-heatmaps-in-one-figure-with-matplotlib%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f54276344%2flayout-problem-of-multiple-heatmaps-in-one-figure-with-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
Remove
plt.tight_layout()
or at least callsubplots_adjust
after that.– ImportanceOfBeingErnest
Jan 20 at 12:49
Thank you for your advice. I added information above.
tight_layout()
seems to be needed to prevent overlapping.– saitouena
Jan 20 at 13:40
Yeah, but now you can play with
hspace
and until you're satisfied with the result. Here, probably something likehspace=1
or higher is needed. For the spacings in the rows, use higherleft
and lowerright
parameter. Most probably you also want to change the figure size.– ImportanceOfBeingErnest
Jan 20 at 13:44
You should increase the height of the figure.
– gepcel
Jan 21 at 3:16