KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to plot a subset of some data, but the y-axis limits are not updated properly after I set the x-axis limits. Is there a way to have matplotlib update the y-axis limits after setting the x-axis limits? For example, consider the following plot: import numpy import pylab pylab.plot(numpy.arange(100)**2.0) which gives: which works fine. However if I want to only view the part from x=0 to x=10, the y-scaling is messed up: pylab.plot(numpy.arange(100)**2.0) pylab.xlim(0,10) which gives: . In the former case, the x- and y-axis are scaled properly, in the latter case, the y-axis is still scaled the same, even if the data is not plotted. How do I tell matplotlib to update the y-axis scaling? Obvious workarounds would be to plot a subset of the data itself, or to reset the y-axis limits manually by inspecting the data, but those are both rather cumbersome. Update: The example above is simplified, in the more general case one has: pylab.plot(xdata, ydata1) pylab.plot(xdata, ydata2) pylab.plot(xdata, ydata3) pylab.xlim(xmin, xmax) Setting the y-axis range manually is of course possible subidx = N.argwhere((xdata >= xmin) & (xdata <= xmax)) ymin = N.min(ydata1[subidx], ydata2[subidx], ydata3[subidx]) ymax = N.max(ydata1[subidx], ydata2[subidx], ydata3[subidx]) pylab.xlim(xmin, xmax) but this is cumbersome to say the least (imho). Is there a faster way to do this without manually calculating the plotranges? Thanks! Update 2: The function autoscale does some scaling and seems the right candidate for
Tags (comma-separated)
Save Edits
Cancel