Matplotlib - 3D Graph only works once











up vote
0
down vote

favorite
1












I'm working on the diffusion equation for a length of L and want to produce a 3D plot of how the solution over the length changes with time so I have an array of values stored for each time step as a matrix just called matrix2 - x and times are the arrays for the values along the length and of all the time steps.



    fig = plt.figure()
ax = fig.gca(projection='3d')
x,times=np.meshgrid(x,times)
ax.plot_surface(x,times,matrix2,antialiased=False);
plt.show()


Now if I run this code, I get the 3D plot I would expect out. If I then try and run the code a second time though either for the exact same values or after running the diffusion for longer and changing times and matrix 2, I don't get an output, there is usually a MemoryError and everything on the computer slows down. Is there something I should be doing which allows me to produce more than one of these sorts of plots?Image of error on running the code for a second time










share|improve this question




















  • 1




    Could you copy a full error?
    – PlikePotato
    Nov 15 at 20:10










  • @PlikePotato I've added an image to the main post now of the error - running the code a single time produces the 3D plot I expect but rerunning the code fails - if I comment out the meshgrid line on the second run through, it works again so I don't know if that gives a clue as to why this is happening?
    – Ben Collister
    Nov 16 at 16:38










  • Rename your x and times variables. Either for every instance in the script before this line or after.
    – Paul Brodersen
    Nov 19 at 9:10










  • Thanks for the help @PaulBrodersen
    – Ben Collister
    Nov 21 at 11:31

















up vote
0
down vote

favorite
1












I'm working on the diffusion equation for a length of L and want to produce a 3D plot of how the solution over the length changes with time so I have an array of values stored for each time step as a matrix just called matrix2 - x and times are the arrays for the values along the length and of all the time steps.



    fig = plt.figure()
ax = fig.gca(projection='3d')
x,times=np.meshgrid(x,times)
ax.plot_surface(x,times,matrix2,antialiased=False);
plt.show()


Now if I run this code, I get the 3D plot I would expect out. If I then try and run the code a second time though either for the exact same values or after running the diffusion for longer and changing times and matrix 2, I don't get an output, there is usually a MemoryError and everything on the computer slows down. Is there something I should be doing which allows me to produce more than one of these sorts of plots?Image of error on running the code for a second time










share|improve this question




















  • 1




    Could you copy a full error?
    – PlikePotato
    Nov 15 at 20:10










  • @PlikePotato I've added an image to the main post now of the error - running the code a single time produces the 3D plot I expect but rerunning the code fails - if I comment out the meshgrid line on the second run through, it works again so I don't know if that gives a clue as to why this is happening?
    – Ben Collister
    Nov 16 at 16:38










  • Rename your x and times variables. Either for every instance in the script before this line or after.
    – Paul Brodersen
    Nov 19 at 9:10










  • Thanks for the help @PaulBrodersen
    – Ben Collister
    Nov 21 at 11:31















up vote
0
down vote

favorite
1









up vote
0
down vote

favorite
1






1





I'm working on the diffusion equation for a length of L and want to produce a 3D plot of how the solution over the length changes with time so I have an array of values stored for each time step as a matrix just called matrix2 - x and times are the arrays for the values along the length and of all the time steps.



    fig = plt.figure()
ax = fig.gca(projection='3d')
x,times=np.meshgrid(x,times)
ax.plot_surface(x,times,matrix2,antialiased=False);
plt.show()


Now if I run this code, I get the 3D plot I would expect out. If I then try and run the code a second time though either for the exact same values or after running the diffusion for longer and changing times and matrix 2, I don't get an output, there is usually a MemoryError and everything on the computer slows down. Is there something I should be doing which allows me to produce more than one of these sorts of plots?Image of error on running the code for a second time










share|improve this question















I'm working on the diffusion equation for a length of L and want to produce a 3D plot of how the solution over the length changes with time so I have an array of values stored for each time step as a matrix just called matrix2 - x and times are the arrays for the values along the length and of all the time steps.



    fig = plt.figure()
ax = fig.gca(projection='3d')
x,times=np.meshgrid(x,times)
ax.plot_surface(x,times,matrix2,antialiased=False);
plt.show()


Now if I run this code, I get the 3D plot I would expect out. If I then try and run the code a second time though either for the exact same values or after running the diffusion for longer and changing times and matrix 2, I don't get an output, there is usually a MemoryError and everything on the computer slows down. Is there something I should be doing which allows me to produce more than one of these sorts of plots?Image of error on running the code for a second time







python matplotlib multidimensional-array






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 16 at 16:36

























asked Nov 15 at 20:06









Ben Collister

11




11








  • 1




    Could you copy a full error?
    – PlikePotato
    Nov 15 at 20:10










  • @PlikePotato I've added an image to the main post now of the error - running the code a single time produces the 3D plot I expect but rerunning the code fails - if I comment out the meshgrid line on the second run through, it works again so I don't know if that gives a clue as to why this is happening?
    – Ben Collister
    Nov 16 at 16:38










  • Rename your x and times variables. Either for every instance in the script before this line or after.
    – Paul Brodersen
    Nov 19 at 9:10










  • Thanks for the help @PaulBrodersen
    – Ben Collister
    Nov 21 at 11:31
















  • 1




    Could you copy a full error?
    – PlikePotato
    Nov 15 at 20:10










  • @PlikePotato I've added an image to the main post now of the error - running the code a single time produces the 3D plot I expect but rerunning the code fails - if I comment out the meshgrid line on the second run through, it works again so I don't know if that gives a clue as to why this is happening?
    – Ben Collister
    Nov 16 at 16:38










  • Rename your x and times variables. Either for every instance in the script before this line or after.
    – Paul Brodersen
    Nov 19 at 9:10










  • Thanks for the help @PaulBrodersen
    – Ben Collister
    Nov 21 at 11:31










1




1




Could you copy a full error?
– PlikePotato
Nov 15 at 20:10




Could you copy a full error?
– PlikePotato
Nov 15 at 20:10












@PlikePotato I've added an image to the main post now of the error - running the code a single time produces the 3D plot I expect but rerunning the code fails - if I comment out the meshgrid line on the second run through, it works again so I don't know if that gives a clue as to why this is happening?
– Ben Collister
Nov 16 at 16:38




@PlikePotato I've added an image to the main post now of the error - running the code a single time produces the 3D plot I expect but rerunning the code fails - if I comment out the meshgrid line on the second run through, it works again so I don't know if that gives a clue as to why this is happening?
– Ben Collister
Nov 16 at 16:38












Rename your x and times variables. Either for every instance in the script before this line or after.
– Paul Brodersen
Nov 19 at 9:10




Rename your x and times variables. Either for every instance in the script before this line or after.
– Paul Brodersen
Nov 19 at 9:10












Thanks for the help @PaulBrodersen
– Ben Collister
Nov 21 at 11:31






Thanks for the help @PaulBrodersen
– Ben Collister
Nov 21 at 11:31



















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',
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%2f53327164%2fmatplotlib-3d-graph-only-works-once%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













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.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • 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%2f53327164%2fmatplotlib-3d-graph-only-works-once%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

Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

ComboBox Display Member on multiple fields

Is it possible to collect Nectar points via Trainline?