From mbatr27 at gmail.com Fri Aug 3 16:43:44 2018 From: mbatr27 at gmail.com (Matthew Bradley) Date: Fri, 3 Aug 2018 14:43:44 -0600 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar Message-ID: All: I have a raster that I want to add a colorbar to, and I've tried playing around with a few things, both giving the axes image a name and then calling it in the colorbar function i.e: cax = axes.imshow(raster_contrast*sorted_raster, aspect=aspect_ratio) cbar = fig.colorbar(cax, orientation='horizontal') and after the image is plotted like so: cax = ax[1].get_images()[0] cbar = fig.colorbar(cax, orientation='horizontal', cax=ax[2]) In either case it produces a PCyGY colormap instead of the diverging RGBlack color scheme. How can I replicate the correct color map in the color bar? Both of these methods appear to work for 2-D array. the sorted raster is an array of shape [861, 138, 3]. Thanks in advance for any help! -- Matthew Bradley -------------- next part -------------- An HTML attachment was scrubbed... URL: From nathan12343 at gmail.com Fri Aug 3 16:46:23 2018 From: nathan12343 at gmail.com (Nathan Goldbaum) Date: Fri, 3 Aug 2018 15:46:23 -0500 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: Sorry I don?t quite understand this question. Is there any chance you can make a concrete minimal, runnavle example using fake data that delonstrates the issue? On Fri, Aug 3, 2018 at 3:44 PM Matthew Bradley wrote: > All: > > I have a raster that I want to add a colorbar to, and I've tried playing > around with a few things, both giving the axes image a name and then > calling it in the colorbar function i.e: > > cax = axes.imshow(raster_contrast*sorted_raster, aspect=aspect_ratio) > cbar = fig.colorbar(cax, orientation='horizontal') > > and after the image is plotted like so: > > cax = ax[1].get_images()[0] > cbar = fig.colorbar(cax, orientation='horizontal', cax=ax[2]) > > In either case it produces a PCyGY colormap instead of the diverging > RGBlack color scheme. How can I replicate the correct color map in the > color bar? Both of these methods appear to work for 2-D array. > > the sorted raster is an array of shape [861, 138, 3]. > > Thanks in advance for any help! > -- > Matthew Bradley > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users at python.org > https://mail.python.org/mailman/listinfo/matplotlib-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbatr27 at gmail.com Fri Aug 3 16:49:30 2018 From: mbatr27 at gmail.com (Matthew Bradley) Date: Fri, 3 Aug 2018 14:49:30 -0600 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: I'll work on it, thanks for the prompt response! On Fri, Aug 3, 2018 at 2:46 PM, Nathan Goldbaum wrote: > Sorry I don?t quite understand this question. > > Is there any chance you can make a concrete minimal, runnavle example > using fake data that delonstrates the issue? > > On Fri, Aug 3, 2018 at 3:44 PM Matthew Bradley wrote: > >> All: >> >> I have a raster that I want to add a colorbar to, and I've tried playing >> around with a few things, both giving the axes image a name and then >> calling it in the colorbar function i.e: >> >> cax = axes.imshow(raster_contrast*sorted_raster, aspect=aspect_ratio) >> cbar = fig.colorbar(cax, orientation='horizontal') >> >> and after the image is plotted like so: >> >> cax = ax[1].get_images()[0] >> cbar = fig.colorbar(cax, orientation='horizontal', cax=ax[2]) >> >> In either case it produces a PCyGY colormap instead of the diverging >> RGBlack color scheme. How can I replicate the correct color map in the >> color bar? Both of these methods appear to work for 2-D array. >> >> the sorted raster is an array of shape [861, 138, 3]. >> >> Thanks in advance for any help! >> -- >> Matthew Bradley >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users at python.org >> https://mail.python.org/mailman/listinfo/matplotlib-users >> > -- Matthew Bradley -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben.v.root at gmail.com Fri Aug 3 17:09:58 2018 From: ben.v.root at gmail.com (Benjamin Root) Date: Fri, 3 Aug 2018 17:09:58 -0400 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: I think the issue is that the user is passing in an RGB array, but wants a colormap that matches that array. That is a bit tricky. Do I have my understanding correct? Ben On Fri, Aug 3, 2018 at 4:49 PM, Matthew Bradley wrote: > I'll work on it, thanks for the prompt response! > > On Fri, Aug 3, 2018 at 2:46 PM, Nathan Goldbaum > wrote: > >> Sorry I don?t quite understand this question. >> >> Is there any chance you can make a concrete minimal, runnavle example >> using fake data that delonstrates the issue? >> >> On Fri, Aug 3, 2018 at 3:44 PM Matthew Bradley wrote: >> >>> All: >>> >>> I have a raster that I want to add a colorbar to, and I've tried playing >>> around with a few things, both giving the axes image a name and then >>> calling it in the colorbar function i.e: >>> >>> cax = axes.imshow(raster_contrast*sorted_raster, aspect=aspect_ratio) >>> cbar = fig.colorbar(cax, orientation='horizontal') >>> >>> and after the image is plotted like so: >>> >>> cax = ax[1].get_images()[0] >>> cbar = fig.colorbar(cax, orientation='horizontal', cax=ax[2]) >>> >>> In either case it produces a PCyGY colormap instead of the diverging >>> RGBlack color scheme. How can I replicate the correct color map in the >>> color bar? Both of these methods appear to work for 2-D array. >>> >>> the sorted raster is an array of shape [861, 138, 3]. >>> >>> Thanks in advance for any help! >>> -- >>> Matthew Bradley >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Matplotlib-users at python.org >>> https://mail.python.org/mailman/listinfo/matplotlib-users >>> >> > > > -- > Matthew Bradley > > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users at python.org > https://mail.python.org/mailman/listinfo/matplotlib-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bruno.pagani at astrophysics.eu Fri Aug 3 17:04:58 2018 From: bruno.pagani at astrophysics.eu (Bruno Pagani) Date: Fri, 3 Aug 2018 23:04:58 +0200 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: <60d25a8a-9e29-97f5-74d0-10dc3a63a2ae@astrophysics.eu> Le 03/08/2018 ? 22:43, Matthew Bradley a ?crit?: > All: > > I have a raster that I want to add a colorbar to, and I've tried > playing around with a few things, both giving the axes image a name > and then calling it in the colorbar function i.e: > > cax = axes.imshow(raster_contrast*sorted_raster, aspect=aspect_ratio) > cbar = fig.colorbar(cax, orientation='horizontal') > > and after the image is plotted like so: > > cax = ax[1].get_images()[0] > cbar = fig.colorbar(cax, orientation='horizontal', cax=ax[2]) > > In either case it produces a PCyGY colormap Viridis[0]? > instead of the diverging RGBlack color scheme. How can I replicate the > correct color map in the color bar? Both of these methods appear to > work for 2-D array.? > > the sorted raster is an array of shape [861, 138, 3]. > > Thanks in advance for any help! I don?t really know how to get a colorbar for RGB(A) arrays, but you need to add something I guess. You?re currently getting the default colormap and associated colorbar. [0]: https://matplotlib.org/2.0.0/users/plotting/colormaps/lightness_00.png -------------- next part -------------- An HTML attachment was scrubbed... URL: From bruno.pagani at astrophysics.eu Fri Aug 3 17:14:47 2018 From: bruno.pagani at astrophysics.eu (Bruno Pagani) Date: Fri, 3 Aug 2018 23:14:47 +0200 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: Le 03/08/2018 ? 23:09, Benjamin Root a ?crit?: > I think the issue is that the user is passing in an RGB array, but > wants a colormap that matches that array. That is a bit tricky. Do I > have my understanding correct? > > Ben Exactly what I understood too. So do you have a solution for this? I?ve stackoverflow?d that question a bit, nothing cames out. Bruno From mbatr27 at gmail.com Fri Aug 3 17:26:35 2018 From: mbatr27 at gmail.com (Matthew Bradley) Date: Fri, 3 Aug 2018 15:26:35 -0600 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: Here's a basic mockup of what I'm running into: import matplotlib.pyplot as plt import numpy as np; np.random.seed(1) example_2D = np.random.rand(841,138) example_raster = np.empty([example_2D.shape[0],example_2D.shape[1],3]) for i in range(example_2D.shape[0]): for j in range(example_2D.shape[1]): if example_2D[i,j] < 0.5: example_raster[i,j] = [0,example_2D[i,j],0] else: example_raster[i,j] = [example_2D[i,j],0,0] fig, ax = plt.subplots(figsize=(4,4)) im = ax.imshow(example_raster, aspect='auto') fig.colorbar(im, orientation="horizontal") plt.show() There is a ipynb file attached for anyone who wants to play around with it. @ Bruno and Benjamin: Yes, that's essentially what I am doing. Here in this simple example I'm just doctoring it so that I get red and green values but in the actual dataset there are negative values that I set to be green and all the positive values are red On Fri, Aug 3, 2018 at 3:14 PM, Bruno Pagani wrote: > Le 03/08/2018 ? 23:09, Benjamin Root a ?crit : > > I think the issue is that the user is passing in an RGB array, but > > wants a colormap that matches that array. That is a bit tricky. Do I > > have my understanding correct? > > > > Ben > > Exactly what I understood too. So do you have a solution for this? I?ve > stackoverflow?d that question a bit, nothing cames out. > > Bruno > -- Matthew Bradley -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Raster_Basic_Example.ipynb Type: application/octet-stream Size: 195909 bytes Desc: not available URL: From ben.v.root at gmail.com Fri Aug 3 17:26:14 2018 From: ben.v.root at gmail.com (Benjamin Root) Date: Fri, 3 Aug 2018 17:26:14 -0400 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: Off the top of my head, I wonder if you can set the colormap after the fact on the image and then create the colorbar. The colorbar is going to assume whatever colormap was set, and the default is viridis. The problem is that I don't think a colormap is set on the image when RGB data is passed in (so, it'll be None), which then means that colorbar falls back on the default from the system, which is usually viridis. If you call `im.set_cmap('NameOfYourColormap')`, and then call colorbar(), I think that'll work. Ben Root On Fri, Aug 3, 2018 at 5:14 PM, Bruno Pagani wrote: > Le 03/08/2018 ? 23:09, Benjamin Root a ?crit : > > I think the issue is that the user is passing in an RGB array, but > > wants a colormap that matches that array. That is a bit tricky. Do I > > have my understanding correct? > > > > Ben > > Exactly what I understood too. So do you have a solution for this? I?ve > stackoverflow?d that question a bit, nothing cames out. > > Bruno > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben.v.root at gmail.com Fri Aug 3 17:39:07 2018 From: ben.v.root at gmail.com (Benjamin Root) Date: Fri, 3 Aug 2018 17:39:07 -0400 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: Well, why are you creating an RGB array?. Why not just pass the data into imshow() and give it vmin/vmax and the colormap that you'd like to use? On Fri, Aug 3, 2018 at 5:26 PM, Matthew Bradley wrote: > Here's a basic mockup of what I'm running into: > > import matplotlib.pyplot as plt > import numpy as np; np.random.seed(1) > > example_2D = np.random.rand(841,138) > > example_raster = np.empty([example_2D.shape[0],example_2D.shape[1],3]) > for i in range(example_2D.shape[0]): > for j in range(example_2D.shape[1]): > if example_2D[i,j] < 0.5: > example_raster[i,j] = [0,example_2D[i,j],0] > else: > example_raster[i,j] = [example_2D[i,j],0,0] > > fig, ax = plt.subplots(figsize=(4,4)) > > im = ax.imshow(example_raster, aspect='auto') > > fig.colorbar(im, orientation="horizontal") > plt.show() > > There is a ipynb file attached for anyone who wants to play around with it. > > > > @ Bruno and Benjamin: Yes, that's essentially what I am doing. Here in > this simple example I'm just doctoring it so that I get red and green > values but in the actual dataset there are negative values that I set to be > green and all the positive values are red > > On Fri, Aug 3, 2018 at 3:14 PM, Bruno Pagani > wrote: > >> Le 03/08/2018 ? 23:09, Benjamin Root a ?crit : >> > I think the issue is that the user is passing in an RGB array, but >> > wants a colormap that matches that array. That is a bit tricky. Do I >> > have my understanding correct? >> > >> > Ben >> >> Exactly what I understood too. So do you have a solution for this? I?ve >> stackoverflow?d that question a bit, nothing cames out. >> >> Bruno >> > > > > -- > Matthew Bradley > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbatr27 at gmail.com Fri Aug 3 17:48:53 2018 From: mbatr27 at gmail.com (Matthew Bradley) Date: Fri, 3 Aug 2018 15:48:53 -0600 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: Nice solution, I wasn't thinking in those sorts of terms before but I think that is the way to go! Thanks! On Fri, Aug 3, 2018 at 3:39 PM, Benjamin Root wrote: > Well, why are you creating an RGB array?. Why not just pass the data into > imshow() and give it vmin/vmax and the colormap that you'd like to use? > > On Fri, Aug 3, 2018 at 5:26 PM, Matthew Bradley wrote: > >> Here's a basic mockup of what I'm running into: >> >> import matplotlib.pyplot as plt >> import numpy as np; np.random.seed(1) >> >> example_2D = np.random.rand(841,138) >> >> example_raster = np.empty([example_2D.shape[0],example_2D.shape[1],3]) >> for i in range(example_2D.shape[0]): >> for j in range(example_2D.shape[1]): >> if example_2D[i,j] < 0.5: >> example_raster[i,j] = [0,example_2D[i,j],0] >> else: >> example_raster[i,j] = [example_2D[i,j],0,0] >> >> fig, ax = plt.subplots(figsize=(4,4)) >> >> im = ax.imshow(example_raster, aspect='auto') >> >> fig.colorbar(im, orientation="horizontal") >> plt.show() >> >> There is a ipynb file attached for anyone who wants to play around with >> it. >> >> >> >> @ Bruno and Benjamin: Yes, that's essentially what I am doing. Here in >> this simple example I'm just doctoring it so that I get red and green >> values but in the actual dataset there are negative values that I set to be >> green and all the positive values are red >> >> On Fri, Aug 3, 2018 at 3:14 PM, Bruno Pagani < >> bruno.pagani at astrophysics.eu> wrote: >> >>> Le 03/08/2018 ? 23:09, Benjamin Root a ?crit : >>> > I think the issue is that the user is passing in an RGB array, but >>> > wants a colormap that matches that array. That is a bit tricky. Do I >>> > have my understanding correct? >>> > >>> > Ben >>> >>> Exactly what I understood too. So do you have a solution for this? I?ve >>> stackoverflow?d that question a bit, nothing cames out. >>> >>> Bruno >>> >> >> >> >> -- >> Matthew Bradley >> > > -- Matthew Bradley -------------- next part -------------- An HTML attachment was scrubbed... URL: From bruno.pagani at astrophysics.eu Fri Aug 3 17:53:21 2018 From: bruno.pagani at astrophysics.eu (Bruno Pagani) Date: Fri, 3 Aug 2018 23:53:21 +0200 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: <7c2d78b0-0615-04a6-8f70-fb88b253b6ae@astrophysics.eu> Le 03/08/2018 ? 23:48, Matthew Bradley a ?crit?: > Nice solution, I wasn't thinking in those sorts of terms before but I > think that is the way to go! > > Thanks! > > On Fri, Aug 3, 2018 at 3:39 PM, Benjamin Root > wrote: > > Well, why are you creating an RGB array?. Why not just pass the > data into imshow() and give it vmin/vmax and the colormap that > you'd like to use? > What you want is likely a colormap like `diverging_gwr` or `diverging_gkr` from colorcet (https://colorcet.pyviz.org/). I mean, if you want to keep those colors.?;) Bruno -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben.v.root at gmail.com Sun Aug 5 11:24:45 2018 From: ben.v.root at gmail.com (Benjamin Root) Date: Sun, 5 Aug 2018 11:24:45 -0400 Subject: [Matplotlib-users] Displaying raster colormap in a colorbar In-Reply-To: References: Message-ID: Glad that helped. Sometimes, one get so deep within fixing a problem that it is hard to see the easy solutions. That's why I am a huge fan of code reviews and forums like this. Cheers! Ben Root On Fri, Aug 3, 2018 at 5:48 PM, Matthew Bradley wrote: > Nice solution, I wasn't thinking in those sorts of terms before but I > think that is the way to go! > > Thanks! > > On Fri, Aug 3, 2018 at 3:39 PM, Benjamin Root > wrote: > >> Well, why are you creating an RGB array?. Why not just pass the data into >> imshow() and give it vmin/vmax and the colormap that you'd like to use? >> >> On Fri, Aug 3, 2018 at 5:26 PM, Matthew Bradley >> wrote: >> >>> Here's a basic mockup of what I'm running into: >>> >>> import matplotlib.pyplot as plt >>> import numpy as np; np.random.seed(1) >>> >>> example_2D = np.random.rand(841,138) >>> >>> example_raster = np.empty([example_2D.shape[0],example_2D.shape[1],3]) >>> for i in range(example_2D.shape[0]): >>> for j in range(example_2D.shape[1]): >>> if example_2D[i,j] < 0.5: >>> example_raster[i,j] = [0,example_2D[i,j],0] >>> else: >>> example_raster[i,j] = [example_2D[i,j],0,0] >>> >>> fig, ax = plt.subplots(figsize=(4,4)) >>> >>> im = ax.imshow(example_raster, aspect='auto') >>> >>> fig.colorbar(im, orientation="horizontal") >>> plt.show() >>> >>> There is a ipynb file attached for anyone who wants to play around with >>> it. >>> >>> >>> >>> @ Bruno and Benjamin: Yes, that's essentially what I am doing. Here in >>> this simple example I'm just doctoring it so that I get red and green >>> values but in the actual dataset there are negative values that I set to be >>> green and all the positive values are red >>> >>> On Fri, Aug 3, 2018 at 3:14 PM, Bruno Pagani < >>> bruno.pagani at astrophysics.eu> wrote: >>> >>>> Le 03/08/2018 ? 23:09, Benjamin Root a ?crit : >>>> > I think the issue is that the user is passing in an RGB array, but >>>> > wants a colormap that matches that array. That is a bit tricky. Do I >>>> > have my understanding correct? >>>> > >>>> > Ben >>>> >>>> Exactly what I understood too. So do you have a solution for this? I?ve >>>> stackoverflow?d that question a bit, nothing cames out. >>>> >>>> Bruno >>>> >>> >>> >>> >>> -- >>> Matthew Bradley >>> >> >> > > > -- > Matthew Bradley > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tcaswell at gmail.com Sat Aug 11 16:20:42 2018 From: tcaswell at gmail.com (Thomas Caswell) Date: Sat, 11 Aug 2018 16:20:42 -0400 Subject: [Matplotlib-users] [REL] Matplotlib 2.2.3 Message-ID: Folks, Happy to announce we have tagged and release Matplotlib 2.2.3. This is the third bug-fix release of the v2.2 LTS series. Wheels and the tarball are on pypi and conda-forge is As a reminder the v2.2 LTS series is the last feature version of Matplotlib to support python 2.7 and will get bug fixes until 2020. Future feature releases will be python 3 only. In addition to documentation and example fixes this release fixes several critical bugs: - Fix import failure on BSD systems - Fix import errors in Qt shims for PyQt5 5.11 and PyQt4 4.12 - Fix import errors if bz2 module is not in standard library - Fix overflow in _path.h - Fix infinite recursion in transform repr - Fix bug with XKCD style - Remove unsafe usage of Popen A big thank you to everyone who worked on this release! Tom -- Thomas Caswell tcaswell at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From anntzer.lee at gmail.com Wed Aug 15 16:27:12 2018 From: anntzer.lee at gmail.com (Antony Lee) Date: Wed, 15 Aug 2018 22:27:12 +0200 Subject: [Matplotlib-users] mplcursors 0.2 release Message-ID: Dear all, I am please to announce the release of mplcursors 0.2. # Description mplcursors provides interactive data selection cursors for Matplotlib. Features include a callback system allowing full customization of the actions when data selection is triggered, and the ability to add a data selection cursor to any preexisting program using Matplotlib by just setting the MPLCURSORS environment variable, without changes to the source code. # Changelog from mplcursors 0.1 to mplcursors 0.2 - Updated dependency to matplotlib 2.1 (2.0 gives more information about orientation of bar plots; 2.1 improves the handling of step plots). - Setting `MPLCURSORS` hooks `Figure.draw` (once per figure only) instead of `plt.show`, thus supporting figures created after the first call to `plt.show`. - Automatic positioning and alignment of annotation text. - Selections on images now have an index as well. - Selections created on `scatter` plots, `errorbar` plots, and `polar` plots can now be moved. - `PathCollection`\s not created by `plt.scatter` are now picked as paths, not as collections of points. - `Patch`\es now pick on their borders, not their interior. - Improved picking of `Container`\s. - In hover mode, annotations can still be removed by right-clicking. Enjoy, Antony Lee -------------- next part -------------- An HTML attachment was scrubbed... URL: From tcaswell at gmail.com Tue Aug 28 10:00:27 2018 From: tcaswell at gmail.com (Thomas Caswell) Date: Tue, 28 Aug 2018 10:00:27 -0400 Subject: [Matplotlib-users] [REL] Matplotlib 3.0.0rc2 Message-ID: Folks, Matplotlib 3.0.0RC2 is tagged and up on pypi with wheels for all 3 platforms (conda-forge is in-process). This release requires python 3.5+. You can install the rc via: pip install --upgrade pip pip install --upgrade --pre matplotlib Please test it out and report any regressions! For a preview of the release notes and API changes see https://matplotlib.org/devdocs/users/whats_new.html https://matplotlib.org/devdocs/api/api_changes.html Almost 130 people contributed code to this release, a big thank you to everyone! https://matplotlib.org/devdocs/users/github_stats.html Tom -------------- next part -------------- An HTML attachment was scrubbed... URL: From ndbecker2 at gmail.com Wed Aug 29 08:51:51 2018 From: ndbecker2 at gmail.com (Neal Becker) Date: Wed, 29 Aug 2018 08:51:51 -0400 Subject: [Matplotlib-users] [REL] Matplotlib 3.0.0rc2 In-Reply-To: References: Message-ID: Pleased to report no regressions so far. Also I'm very pleased that axis overlapping with title is fixed when using twiny, I no longer need to kludge y=1.1 on title, thanks! On Tue, Aug 28, 2018 at 10:01 AM Thomas Caswell wrote: > Folks, > > Matplotlib 3.0.0RC2 is tagged and up on pypi with wheels for all 3 > platforms (conda-forge is in-process). This release requires python 3.5+. > > You can install the rc via: > > pip install --upgrade pip > pip install --upgrade --pre matplotlib > > Please test it out and report any regressions! > > For a preview of the release notes and API changes see > > https://matplotlib.org/devdocs/users/whats_new.html > https://matplotlib.org/devdocs/api/api_changes.html > > Almost 130 people contributed code to this release, a big thank you to > everyone! > > https://matplotlib.org/devdocs/users/github_stats.html > > Tom > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users at python.org > https://mail.python.org/mailman/listinfo/matplotlib-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: