Matplotlib - 3D Graph only works once
up vote
0
down vote
favorite
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
add a comment |
up vote
0
down vote
favorite
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
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 yourx
andtimes
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
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
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
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
python matplotlib multidimensional-array
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 yourx
andtimes
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
add a comment |
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 yourx
andtimes
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
add a comment |
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
});
}
});
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%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
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.
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%2f53327164%2fmatplotlib-3d-graph-only-works-once%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
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
andtimes
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