I normally just plot a whole bunch of arrays... and then add the color bar
sc1 = f1s1.scatter(array[:,0], array[:,1], c=array[:,2], s=50,
cmap='spectral',edgecolor='w')
bar = pyl.colorbar(sc1)
bar.set_label("label")
Steven
On 12/20/12 5:54 PM, Paul Hobson wrote:
On Thu, Dec 20, 2012 at 1:05 PM, Kynn Jones <kyn...@gmail.com
<mailto:kyn...@gmail.com>> wrote:
I create PNG files of scatterplots with code that, in essence,
goes as in the sketch below:
cmap = (matplotlib.color.LinearSegmentedColormap.
from_list('blueWhiteRed', ['blue', 'white', 'red']))
fig = matplotlib.figure.Figure(figsize=(4, 4), dpi=72)
ax = fig.gca()
for marker in 'o s ^ *'.split():
X, Y, COLOR = zip(*((record.x, record.y, record.level)
for record in data if record.marker ==
marker))
ax.scatter(X, Y, marker=marker,
c=COLOR, vmin=0, vmax=1, cmap=cmap,
**otherkwargs)
# various settings of ticks, labels, etc. omitted
canvas = matplotlib.backends.backend_agg.FigureCanvasAgg(fig)
fig.set_canvas(canvas)
# IMPORTANT: the generated figure is *not* displayed on the
screen, but
# rather it is output to disk as a PNG file:
canvas.print_png('/path/to/output/fig.png')
My question is this:
What do I need to add to the code above to get a vertical colorbar
(representing the colormap incmap) along the plot's right edge?
I word the question in this way because I am not sufficiently
facile with Matplotlib to deviate too far from the working code above.
In particular, my code *has* to be able to produce PNG files
*non-interactively*, so the last line in the code sketch above is
really essential.
Thanks in advance!
kj
Can you provide some more information and a self-contained example?
What is your record object? Is it a pandas dataframe? Are the limits
of record.level consistent with vmax and vmin kwargs fed in the call
to ax.scatter?
Typically you can just do:
import matplotlib.pyplot as plt
# blah blah
fig, ax = plt.subplots()
s = ax.scatter()...
cb = plt.colorbar(s)
cb.set_label('Cbar Label Here')
Also, I don't think you need to mess with the backend stuff. Just do
fig.savefig('figname.png'). If you need separate markers for each set,
make a single call to scatter for each data group, and use numpy to
figure out what the appropriate vmax a vmin limits are for the colorbar.
-paul
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--
Steven Boada
Doctoral Student
Dept of Physics and Astronomy
Texas A&M University
bo...@physics.tamu.edu
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users