I have a fairly complicated qt4 gui with a number of matplotlib plots as shown in the picture. Each plot plots one channel of data and there are 12 channels in total. The vertical scroll bar on the right adjusts the range of channels to plot. The problem is the gui works pretty sluggishly. When the scroll bar is moved, it takes about 2 seconds to refresh the plots. Is there any way to speed it up?
The entire code is fairly large to post here. But I am using
matplotlib.backends.backend_qt4agg as the backend and use canvas.draw() to refresh each plot. Thanks!
Related
So i have a Matplotlib pie chart that i need the second wedge to always be positioned to the right.
Example of problem
My issue is I can manually change the start angle when generating the pie but I am generating hundreds of pies with different data each time so this isn't really practical, does anyone know of a way to do this automatically?
I'm currently trying to recreate this: video, and I could not find how to recreate the 3D visualization step, where coordinate axis are translated and rotated around, in matplotlib. Does anyone know how to do in matplotlib's animation, updating the results in real time?
I want to make the plot smaller, so it can save some space in print. However, when I make it smaller, the grid will be too tight:
Honestly, I don't get it. Why can't matplotlib auto-detect that this image is too small that the lable should be with a bigger interval?
So, How can I make the grid more sparse, so the lables won't overlap with each other?
Additionally, the title will also collapse with the labels. I can set it manually, by plt.suptitle(title, y=1.08). So it will look better
But I'm wondering if there is anyway to do it automatically?
Note: I'm using seaborn, but I tried with pure matplotlib, same problem.
I want to make a plot in matplotlib that is wide and short. I can manipulate the size of a plot as answered on this question.
However, the x-axis label disappears if the plot is not tall enough. I want to squeeze the plot more while keeping the axis label visible.
Is there a way to manipulate the size of the plot without getting rid of the axis label?
After you change the plot size, run tight_layout(). Note that this requires matplotlib v1.1 or newer. If you have an older version of matplotlib, you can run subplot_tool() or subplots_adjust to adjust the plot manually.
I have a Core-Plot Graph within a Mac Application. But the inside table is appearing shifted down and to the left of the containing "frame/border" so that neither of the axis' are showing. I cannot figure out how to change this does anyone know what parameters I need to change to fix this?
Update: Sorry I did not realize I could upload an image, I have done so know and will try your suggestions in the mean-time.
Not sure what you mean by "inside table". It would be easier to offer suggestions if you could post a screenshot.
Without seeing what's wrong, here are some common areas to look at:
If you haven't already done so, look at the example apps included with Core Plot for ideas. The Plot Gallery app has many sample plots and the others are useful, too.
You may need to add padding (paddingLeft, paddingBottom, etc.) on the graph and/or plot area frame. Padding the graph pushes everything in away from the edges of the graph. Padding the plot area frame pushes the plot area in so the axes and titles can hang outside the plot area (the area where the plots are drawn).
If you want to keep an axes pinned to a specific place, e.g., the edge of the graph, set up a floating axis. Otherwise make sure the orthogonal coordinate is set (it defaults to 0). For example, the orthogonal coordinate for the x-axis is the y-value where the x-axis crosses the y-axis.