layout problem of multiple heatmaps in one figure with matplotlib












0















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.
enter image description here



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.



enter image description here
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.










share|improve this question

























  • 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











  • 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
















0















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.
enter image description here



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.



enter image description here
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.










share|improve this question

























  • 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











  • 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














0












0








0








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.
enter image description here



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.



enter image description here
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.










share|improve this question
















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.
enter image description here



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.



enter image description here
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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 20 at 13:39







saitouena

















asked Jan 20 at 12:17









saitouenasaitouena

203




203













  • 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











  • 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



















  • 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











  • 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

















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












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
});


}
});














draft saved

draft discarded


















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
















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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

Liquibase includeAll doesn't find base path

How to use setInterval in EJS file?

Petrus Granier-Deferre