You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(12) |
Sep
(12) |
Oct
(56) |
Nov
(65) |
Dec
(37) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(59) |
Feb
(78) |
Mar
(153) |
Apr
(205) |
May
(184) |
Jun
(123) |
Jul
(171) |
Aug
(156) |
Sep
(190) |
Oct
(120) |
Nov
(154) |
Dec
(223) |
2005 |
Jan
(184) |
Feb
(267) |
Mar
(214) |
Apr
(286) |
May
(320) |
Jun
(299) |
Jul
(348) |
Aug
(283) |
Sep
(355) |
Oct
(293) |
Nov
(232) |
Dec
(203) |
2006 |
Jan
(352) |
Feb
(358) |
Mar
(403) |
Apr
(313) |
May
(165) |
Jun
(281) |
Jul
(316) |
Aug
(228) |
Sep
(279) |
Oct
(243) |
Nov
(315) |
Dec
(345) |
2007 |
Jan
(260) |
Feb
(323) |
Mar
(340) |
Apr
(319) |
May
(290) |
Jun
(296) |
Jul
(221) |
Aug
(292) |
Sep
(242) |
Oct
(248) |
Nov
(242) |
Dec
(332) |
2008 |
Jan
(312) |
Feb
(359) |
Mar
(454) |
Apr
(287) |
May
(340) |
Jun
(450) |
Jul
(403) |
Aug
(324) |
Sep
(349) |
Oct
(385) |
Nov
(363) |
Dec
(437) |
2009 |
Jan
(500) |
Feb
(301) |
Mar
(409) |
Apr
(486) |
May
(545) |
Jun
(391) |
Jul
(518) |
Aug
(497) |
Sep
(492) |
Oct
(429) |
Nov
(357) |
Dec
(310) |
2010 |
Jan
(371) |
Feb
(657) |
Mar
(519) |
Apr
(432) |
May
(312) |
Jun
(416) |
Jul
(477) |
Aug
(386) |
Sep
(419) |
Oct
(435) |
Nov
(320) |
Dec
(202) |
2011 |
Jan
(321) |
Feb
(413) |
Mar
(299) |
Apr
(215) |
May
(284) |
Jun
(203) |
Jul
(207) |
Aug
(314) |
Sep
(321) |
Oct
(259) |
Nov
(347) |
Dec
(209) |
2012 |
Jan
(322) |
Feb
(414) |
Mar
(377) |
Apr
(179) |
May
(173) |
Jun
(234) |
Jul
(295) |
Aug
(239) |
Sep
(276) |
Oct
(355) |
Nov
(144) |
Dec
(108) |
2013 |
Jan
(170) |
Feb
(89) |
Mar
(204) |
Apr
(133) |
May
(142) |
Jun
(89) |
Jul
(160) |
Aug
(180) |
Sep
(69) |
Oct
(136) |
Nov
(83) |
Dec
(32) |
2014 |
Jan
(71) |
Feb
(90) |
Mar
(161) |
Apr
(117) |
May
(78) |
Jun
(94) |
Jul
(60) |
Aug
(83) |
Sep
(102) |
Oct
(132) |
Nov
(154) |
Dec
(96) |
2015 |
Jan
(45) |
Feb
(138) |
Mar
(176) |
Apr
(132) |
May
(119) |
Jun
(124) |
Jul
(77) |
Aug
(31) |
Sep
(34) |
Oct
(22) |
Nov
(23) |
Dec
(9) |
2016 |
Jan
(26) |
Feb
(17) |
Mar
(10) |
Apr
(8) |
May
(4) |
Jun
(8) |
Jul
(6) |
Aug
(5) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
2017 |
Jan
(5) |
Feb
(7) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(6) |
2
(3) |
3
(4) |
4
(1) |
5
(19) |
6
(8) |
7
(3) |
8
|
9
|
10
(9) |
11
(3) |
12
(8) |
13
(17) |
14
(5) |
15
(2) |
16
(2) |
17
(7) |
18
(2) |
19
(4) |
20
(6) |
21
|
22
(5) |
23
|
24
(7) |
25
(2) |
26
(3) |
27
(9) |
28
(9) |
29
(6) |
30
(3) |
31
(8) |
|
|
|
|
|
From: Martin M. <mmo...@fo...> - 2014-03-03 18:41:32
|
Maybe I understand what he means. How can a user override some value in a colormap? Lets say, in general user wants to inherit some ready made colormap but in addition wants to force certain colors to some data items. M. Eric Firing wrote: > On 2014/03/02 1:02 AM, ChaoYue wrote: >> Dear Eric, >> >> This solved part of my problem. thanks a lot. >> I think I will revisit this issue when I have time (not promised). >> do you think this could be some feature desirable? > > I don't understand what feature you are referring to; evidently I don't > understand what the problem is, so I don't know what part remains unsolved. > > Eric > > >> >> Cheers, >> >> Chao >> >> >> On Sat, Mar 1, 2014 at 10:39 PM, Eric Firing [via matplotlib] <[hidden >> email] </user/SendEmail.jtp?type=node&node=42956&i=0>> wrote: >> >> On 2014/03/01 11:03 AM, ChaoYue wrote: >> > The most correct way might be to design a new colormap with white >> color >> > exactly in the middle, however this is very tedious, especially if I >> > want to try >> > different colormaps. so the alternative approach would be to set >> the values >> > falling in (-1,1) as being masked, so they will be the same as >> the axes >> > background color as you mentioned (in our case it's white). My >> question is, >> > how can I put this background color (which shows maksed data) in the >> > colorbar, >> > by avoiding design a new colormap? >> >> It's not the answer you want to hear, but I think the correct answer is >> that you should do this via the colormap, and not by masking the low >> values. It doesn't have to be painful. If, in contourf, you use a >> diverging colormap with white already in the middle >> (http://matplotlib.org/examples/color/colormaps_reference.html) and a >> norm with symmetric limits (vmin and vmax; you can let them be set >> automatically after you specify your symmetric set of contour >> boundaries >> appropriately) then it will be done for you. >> >> e.g., >> >> z = 10 * np.random.randn(20, 30) >> clevs = [-10, -5, -2, -1, 1, 2, 5, 10] >> cs = plt.contourf(z, levels=clevs, cmap=plt.get_cmap('PRGn'), >> extend='both') >> cbar = plt.colorbar(cs, spacing='uniform') >> >> Eric >> >> ------------------------------------------------------------------------------ > > > ------------------------------------------------------------------------------ > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Michael D. <md...@st...> - 2014-03-03 03:10:33
|
Thanks. I'd definitely consider this a bug this. Would you mind creating an issue or pull request on github.com/matplotlib/matplotlib so it doesn't get lost? Mike On 03/01/2014 05:42 PM, Jon Roadley-Battin wrote: > >On 02/27/2014 06:58 PM, Jon Roadley-Battin wrote: > >> Good evening, > >> > >> I am at present migrating an application of mine from py27+pygtk (with > >> mpl) to py33+pygobject (gtk3) > >> > >> Unfortunately I am unable to use > >> > >> from matplotlib.backends.backend_gtk3agg import > FigureCanvasGTK3Agg as FigureCanvas > >> from matplotlib.backends.backend_gtk3 import > NavigationToolbar2GTK3 as NavigationToolbar > >> > >> Which is is on the examples ( > >> > http://matplotlib.org/examples/user_interfaces/embedding_in_gtk3_panzoom.html > >> ) but is also the logical translation from what I presently have. > >> This falls fowl of the cairo issue > >> > >> What I am having to use is backend_gtk3cairo. However this is being > >> triggered > >> > >> raise ValueError("The Cairo backend can not draw paths longer than > >> 18980 points.") > >> > >> I am generally plotting 7 x-y plots with upto 30,000 points. > >> Now for now I have commented this out from my local install, is there > >> a better/preferred/recommended alternative? > > > >This was put in there because cairo had (at least at the time) a hard > >coded limit on path size, and getting a Python exception was IMHO > >preferable to segfaulting and having the process go away. Are you > >saying that when you comment it out, it's currently working? It may be > >that cairo has fixed this limit in the intervening years. Can you > >provide a simple, standalone example that reproduces the error? > > > Using python33 & pygi-aio-3.10.2-win32_rev18 (to provide pygobject for > windows:) > Using: > http://matplotlib.org/examples/user_interfaces/embedding_in_gtk3_panzoom.html > as the baseline provides the following error: > > < File > "c:\Python33\lib\site-packages\matplotlib\backends\backend_gtk3agg.py", line > 52, in on_draw_event > buf, cairo.FORMAT_ARGB32, width, height) > NotImplementedError: Surface.create_for_data: Not Implemented yet. > > > This has been mentioned a few times across the ml > > Modifying the example to use backend_gtk3cairo > > from matplotlib.backends.backend_gtk3cairo import > FigureCanvasGTK3Cairo as FigureCanvas > from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as > NavigationToolbar > > > Now the example runs and plots a nice sinewave (as expected). Modify > the script to plot 7 waveforms, 100pts > > ############################################################################################################## > #!/usr/bin/env python3 > """ > demonstrate NavigationToolbar with GTK3 accessed via pygobject > """ > > from gi.repository import Gtk > > from matplotlib.figure import Figure > import numpy as np > from matplotlib.backends.backend_gtk3cairo import > FigureCanvasGTK3Cairo as FigureCanvas > from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as > NavigationToolbar > > > win = Gtk.Window() > win.connect("delete-event", Gtk.main_quit ) > win.set_default_size(400,300) > win.set_title("Embedding in GTK") > > fig = Figure(figsize=(5,4), dpi=100) > plt = fig.add_subplot(1,1,1) > > t = np.arange(0,2*np.pi,2*np.pi/100) > a = np.sin(t + 0*(2*np.pi/7)) > b = np.sin(t + 1*(2*np.pi/7)) > c = np.sin(t + 2*(2*np.pi/7)) > d = np.sin(t + 3*(2*np.pi/7)) > e = np.sin(t + 4*(2*np.pi/7)) > f = np.sin(t + 5*(2*np.pi/7)) > g = np.sin(t + 6*(2*np.pi/7)) > plt.plot(t,a) > plt.plot(t,b) > plt.plot(t,c) > plt.plot(t,d) > plt.plot(t,e) > plt.plot(t,f) > plt.plot(t,g) > > vbox = Gtk.VBox() > win.add(vbox) > > # Add canvas to vbox > canvas = FigureCanvas(fig) # a Gtk.DrawingArea > vbox.pack_start(canvas, True, True, 0) > > # Create toolbar > toolbar = NavigationToolbar(canvas, win) > vbox.pack_start(toolbar, False, False, 0) > > win.show_all() > Gtk.main() > #################################################################################################################### > > This works, its only 100pts for 7 scatters so nothing unexpected. > Modify the arange to create a time array of 30,000 pts. > > t = np.arange(0,2*np.pi,2*np.pi/30000) > > > File > "c:\Python33\lib\site-packages\matplotlib\backends\backend_cairo.py", > line 143, in draw_path > raise ValueError("The Cairo backend can not draw paths longer than > 18980 points.") > ValueError: The Cairo backend can not draw paths longer than 18980 points. > > > The already mentioned raise to protect against a segfault. > Edit backend_cairo to comment out the check: > > > def draw_path(self, gc, path, transform, rgbFace=None): > #if len(path.vertices) > 18980: > # raise ValueError("The Cairo backend can not draw paths > longer than 18980 points.") > > ctx = gc.ctx > > > > 7channel, 30,000 pts each is plotted just fine. Zoom rectangle is slow > to render, but this is true for 100pts (so more a gtk3 thing than a > cairo and multiple points thing) > > Final script: > > > > ####################################################################################################################### > #!/usr/bin/env python3 > """ > demonstrate NavigationToolbar with GTK3 accessed via pygobject > """ > > from gi.repository import Gtk > > from matplotlib.figure import Figure > import numpy as np > from matplotlib.backends.backend_gtk3cairo import > FigureCanvasGTK3Cairo as FigureCanvas #changed to use gtk3cairo > from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as > NavigationToolbar > > > win = Gtk.Window() > win.connect("delete-event", Gtk.main_quit ) > win.set_default_size(400,300) > win.set_title("Embedding in GTK") > > fig = Figure(figsize=(5,4), dpi=100) > plt = fig.add_subplot(1,1,1) > > t = np.arange(0,2*np.pi,2*np.pi/30000) # 30,000 pt time > array for 7 signals > a = np.sin(t + 0*(2*np.pi/7)) > b = np.sin(t + 1*(2*np.pi/7)) > c = np.sin(t + 2*(2*np.pi/7)) > d = np.sin(t + 3*(2*np.pi/7)) > e = np.sin(t + 4*(2*np.pi/7)) > f = np.sin(t + 5*(2*np.pi/7)) > g = np.sin(t + 6*(2*np.pi/7)) > plt.plot(t,a) > plt.plot(t,b) > plt.plot(t,c) > plt.plot(t,d) > plt.plot(t,e) > plt.plot(t,f) > plt.plot(t,g) > > vbox = Gtk.VBox() > win.add(vbox) > > # Add canvas to vbox > canvas = FigureCanvas(fig) # a Gtk.DrawingArea > vbox.pack_start(canvas, True, True, 0) > > # Create toolbar > toolbar = NavigationToolbar(canvas, win) > vbox.pack_start(toolbar, False, False, 0) > > win.show_all() > Gtk.main() > ###################################################################################################################### > > > > Hope this helps. or is useful > > JonRB > > > > ------------------------------------------------------------------------------ > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- _ |\/|o _|_ _. _ | | \.__ __|__|_|_ _ _ ._ _ | ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | | http://www.droettboom.com |
From: Eric F. <ef...@ha...> - 2014-03-02 17:18:20
|
On 2014/03/02 1:02 AM, ChaoYue wrote: > Dear Eric, > > This solved part of my problem. thanks a lot. > I think I will revisit this issue when I have time (not promised). > do you think this could be some feature desirable? I don't understand what feature you are referring to; evidently I don't understand what the problem is, so I don't know what part remains unsolved. Eric > > Cheers, > > Chao > > > On Sat, Mar 1, 2014 at 10:39 PM, Eric Firing [via matplotlib] <[hidden > email] </user/SendEmail.jtp?type=node&node=42956&i=0>> wrote: > > On 2014/03/01 11:03 AM, ChaoYue wrote: > > The most correct way might be to design a new colormap with white > color > > exactly in the middle, however this is very tedious, especially if I > > want to try > > different colormaps. so the alternative approach would be to set > the values > > falling in (-1,1) as being masked, so they will be the same as > the axes > > background color as you mentioned (in our case it's white). My > question is, > > how can I put this background color (which shows maksed data) in the > > colorbar, > > by avoiding design a new colormap? > > It's not the answer you want to hear, but I think the correct answer is > that you should do this via the colormap, and not by masking the low > values. It doesn't have to be painful. If, in contourf, you use a > diverging colormap with white already in the middle > (http://matplotlib.org/examples/color/colormaps_reference.html) and a > norm with symmetric limits (vmin and vmax; you can let them be set > automatically after you specify your symmetric set of contour > boundaries > appropriately) then it will be done for you. > > e.g., > > z = 10 * np.random.randn(20, 30) > clevs = [-10, -5, -2, -1, 1, 2, 5, 10] > cs = plt.contourf(z, levels=clevs, cmap=plt.get_cmap('PRGn'), > extend='both') > cbar = plt.colorbar(cs, spacing='uniform') > > Eric > > ------------------------------------------------------------------------------ |
From: ChaoYue <cha...@gm...> - 2014-03-02 11:02:29
|
Dear Eric, This solved part of my problem. thanks a lot. I think I will revisit this issue when I have time (not promised). do you think this could be some feature desirable? Cheers, Chao On Sat, Mar 1, 2014 at 10:39 PM, Eric Firing [via matplotlib] < ml-...@n5...> wrote: > On 2014/03/01 11:03 AM, ChaoYue wrote: > > The most correct way might be to design a new colormap with white color > > exactly in the middle, however this is very tedious, especially if I > > want to try > > different colormaps. so the alternative approach would be to set the > values > > falling in (-1,1) as being masked, so they will be the same as the axes > > background color as you mentioned (in our case it's white). My question > is, > > how can I put this background color (which shows maksed data) in the > > colorbar, > > by avoiding design a new colormap? > > It's not the answer you want to hear, but I think the correct answer is > that you should do this via the colormap, and not by masking the low > values. It doesn't have to be painful. If, in contourf, you use a > diverging colormap with white already in the middle > (http://matplotlib.org/examples/color/colormaps_reference.html) and a > norm with symmetric limits (vmin and vmax; you can let them be set > automatically after you specify your symmetric set of contour boundaries > appropriately) then it will be done for you. > > e.g., > > z = 10 * np.random.randn(20, 30) > clevs = [-10, -5, -2, -1, 1, 2, 5, 10] > cs = plt.contourf(z, levels=clevs, cmap=plt.get_cmap('PRGn'), > extend='both') > cbar = plt.colorbar(cs, spacing='uniform') > > Eric > > ------------------------------------------------------------------------------ > > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > [hidden email] <http://user/SendEmail.jtp?type=node&node=42952&i=0> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://matplotlib.1069221.n5.nabble.com/How-can-I-put-a-white-area-in-the-middle-of-colorbar-showing-the-masked-data-tp42948p42952.html > To start a new topic under matplotlib - users, email > ml-...@n5... > To unsubscribe from matplotlib, click here<http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2&code=Y2hhb3l1ZWpveUBnbWFpbC5jb218MnwxMzg1NzAzMzQx> > . > NAML<http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ -- View this message in context: http://matplotlib.1069221.n5.nabble.com/How-can-I-put-a-white-area-in-the-middle-of-colorbar-showing-the-masked-data-tp42948p42956.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Asma R. <asm...@gm...> - 2014-03-02 02:40:40
|
Hi, I am trying to insert a .png image to the right side of the plot and following the code mentioned here:Combine picture and plot with Python Matplotlib<http://stackoverflow.com/questions/3765056/combine-picture-and-plot-with-python-matplotlib> Here is what I have tried: import numpy as npfrom matplotlib.colors import LinearSegmentedColormapimport matplotlib.pyplot as pltimport matplotlib as mplimport matplotlib.cbook as cbookfrom matplotlib._png import read_pngfrom matplotlib.offsetbox import OffsetImage cmap = mpl.cm.hot norm = mpl.colors.Normalize(vmin=-1 * outlier, vmax=outlier) cmap.set_over('green') cmap.set_under('green') cmap.set_bad('green') plt.xlim(0,35) plt.ylim(0,35) fig, ax = plt.subplots() ax.set_aspect('equal') cb_ax=fig.add_axes([0.85, 0.1, 0.03, 0.8]) img = ax.imshow(np.ma.masked_values(data, outlier), cmap=cmap, norm=norm, interpolation='none',vmax=outlier) cb = mpl.colorbar.ColorbarBase(cb_ax, cmap=cmap, norm=norm, extend='both')##axim = plt.subplot2grid(shape, loc, rowspan=1) ## phlo tree image_file = cbook.get_sample_data('mytree.png',asfileobj=False) image = plt.imread(image_file) phyl_ax=fig.add_axes([0.10,0.1, 0.03, 0.8]) phyl_ax.imshow(image,interpolation='nearest') Th heat map would be on the left side and the image of a tree will be inserted on the right side. The above code gives me the required heat map but the image I am trying to add on the right side isn't appearing. Can someone lead me as to how I can go about this? Thanks |
From: Jon Roadley-B. <jon...@gm...> - 2014-03-01 22:42:43
|
>On 02/27/2014 06:58 PM, Jon Roadley-Battin wrote: >> Good evening, >> >> I am at present migrating an application of mine from py27+pygtk (with >> mpl) to py33+pygobject (gtk3) >> >> Unfortunately I am unable to use >> >> from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as FigureCanvas >> from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as NavigationToolbar >> >> Which is is on the examples ( >> http://matplotlib.org/examples/user_interfaces/embedding_in_gtk3_panzoom.html >> ) but is also the logical translation from what I presently have. >> This falls fowl of the cairo issue >> >> What I am having to use is backend_gtk3cairo. However this is being >> triggered >> >> raise ValueError("The Cairo backend can not draw paths longer than >> 18980 points.") >> >> I am generally plotting 7 x-y plots with upto 30,000 points. >> Now for now I have commented this out from my local install, is there >> a better/preferred/recommended alternative? > >This was put in there because cairo had (at least at the time) a hard >coded limit on path size, and getting a Python exception was IMHO >preferable to segfaulting and having the process go away. Are you >saying that when you comment it out, it's currently working? It may be >that cairo has fixed this limit in the intervening years. Can you >provide a simple, standalone example that reproduces the error? Using python33 & pygi-aio-3.10.2-win32_rev18 (to provide pygobject for windows:) Using: http://matplotlib.org/examples/user_interfaces/embedding_in_gtk3_panzoom.htmlas the baseline provides the following error: < File "c:\Python33\lib\site-packages\matplotlib\backends\backend_gtk3agg.py", line 52, in on_draw_event buf, cairo.FORMAT_ARGB32, width, height) NotImplementedError: Surface.create_for_data: Not Implemented yet. This has been mentioned a few times across the ml Modifying the example to use backend_gtk3cairo from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as FigureCanvas from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as NavigationToolbar Now the example runs and plots a nice sinewave (as expected). Modify the script to plot 7 waveforms, 100pts ############################################################################################################## #!/usr/bin/env python3 """ demonstrate NavigationToolbar with GTK3 accessed via pygobject """ from gi.repository import Gtk from matplotlib.figure import Figure import numpy as np from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as FigureCanvas from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as NavigationToolbar win = Gtk.Window() win.connect("delete-event", Gtk.main_quit ) win.set_default_size(400,300) win.set_title("Embedding in GTK") fig = Figure(figsize=(5,4), dpi=100) plt = fig.add_subplot(1,1,1) t = np.arange(0,2*np.pi,2*np.pi/100) a = np.sin(t + 0*(2*np.pi/7)) b = np.sin(t + 1*(2*np.pi/7)) c = np.sin(t + 2*(2*np.pi/7)) d = np.sin(t + 3*(2*np.pi/7)) e = np.sin(t + 4*(2*np.pi/7)) f = np.sin(t + 5*(2*np.pi/7)) g = np.sin(t + 6*(2*np.pi/7)) plt.plot(t,a) plt.plot(t,b) plt.plot(t,c) plt.plot(t,d) plt.plot(t,e) plt.plot(t,f) plt.plot(t,g) vbox = Gtk.VBox() win.add(vbox) # Add canvas to vbox canvas = FigureCanvas(fig) # a Gtk.DrawingArea vbox.pack_start(canvas, True, True, 0) # Create toolbar toolbar = NavigationToolbar(canvas, win) vbox.pack_start(toolbar, False, False, 0) win.show_all() Gtk.main() #################################################################################################################### This works, its only 100pts for 7 scatters so nothing unexpected. Modify the arange to create a time array of 30,000 pts. t = np.arange(0,2*np.pi,2*np.pi/30000) File "c:\Python33\lib\site-packages\matplotlib\backends\backend_cairo.py", line 143, in draw_path raise ValueError("The Cairo backend can not draw paths longer than 18980 points.") ValueError: The Cairo backend can not draw paths longer than 18980 points. The already mentioned raise to protect against a segfault. Edit backend_cairo to comment out the check: def draw_path(self, gc, path, transform, rgbFace=None): #if len(path.vertices) > 18980: # raise ValueError("The Cairo backend can not draw paths longer than 18980 points.") ctx = gc.ctx 7channel, 30,000 pts each is plotted just fine. Zoom rectangle is slow to render, but this is true for 100pts (so more a gtk3 thing than a cairo and multiple points thing) Final script: ####################################################################################################################### #!/usr/bin/env python3 """ demonstrate NavigationToolbar with GTK3 accessed via pygobject """ from gi.repository import Gtk from matplotlib.figure import Figure import numpy as np from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as FigureCanvas #changed to use gtk3cairo from matplotlib.backends.backend_gtk3 import NavigationToolbar2GTK3 as NavigationToolbar win = Gtk.Window() win.connect("delete-event", Gtk.main_quit ) win.set_default_size(400,300) win.set_title("Embedding in GTK") fig = Figure(figsize=(5,4), dpi=100) plt = fig.add_subplot(1,1,1) t = np.arange(0,2*np.pi,2*np.pi/30000) # 30,000 pt time array for 7 signals a = np.sin(t + 0*(2*np.pi/7)) b = np.sin(t + 1*(2*np.pi/7)) c = np.sin(t + 2*(2*np.pi/7)) d = np.sin(t + 3*(2*np.pi/7)) e = np.sin(t + 4*(2*np.pi/7)) f = np.sin(t + 5*(2*np.pi/7)) g = np.sin(t + 6*(2*np.pi/7)) plt.plot(t,a) plt.plot(t,b) plt.plot(t,c) plt.plot(t,d) plt.plot(t,e) plt.plot(t,f) plt.plot(t,g) vbox = Gtk.VBox() win.add(vbox) # Add canvas to vbox canvas = FigureCanvas(fig) # a Gtk.DrawingArea vbox.pack_start(canvas, True, True, 0) # Create toolbar toolbar = NavigationToolbar(canvas, win) vbox.pack_start(toolbar, False, False, 0) win.show_all() Gtk.main() ###################################################################################################################### Hope this helps. or is useful JonRB |
From: Eric F. <ef...@ha...> - 2014-03-01 21:39:23
|
On 2014/03/01 11:03 AM, ChaoYue wrote: > The most correct way might be to design a new colormap with white color > exactly in the middle, however this is very tedious, especially if I > want to try > different colormaps. so the alternative approach would be to set the values > falling in (-1,1) as being masked, so they will be the same as the axes > background color as you mentioned (in our case it's white). My question is, > how can I put this background color (which shows maksed data) in the > colorbar, > by avoiding design a new colormap? It's not the answer you want to hear, but I think the correct answer is that you should do this via the colormap, and not by masking the low values. It doesn't have to be painful. If, in contourf, you use a diverging colormap with white already in the middle (http://matplotlib.org/examples/color/colormaps_reference.html) and a norm with symmetric limits (vmin and vmax; you can let them be set automatically after you specify your symmetric set of contour boundaries appropriately) then it will be done for you. e.g., z = 10 * np.random.randn(20, 30) clevs = [-10, -5, -2, -1, 1, 2, 5, 10] cs = plt.contourf(z, levels=clevs, cmap=plt.get_cmap('PRGn'), extend='both') cbar = plt.colorbar(cs, spacing='uniform') Eric |
From: ChaoYue <cha...@gm...> - 2014-03-01 21:03:53
|
Hi Eric, thanks for answering. I updated the attached figure. The idea is, we want to show the tree cover difference, but to make the negative and positive values very contrastive, we would like to assign the values falling in small range of change (in the figure, it's -1 to 1) as blank (or gray), in order to make the remaining data constrasting different. The most correct way might be to design a new colormap with white color exactly in the middle, however this is very tedious, especially if I want to try different colormaps. so the alternative approach would be to set the values falling in (-1,1) as being masked, so they will be the same as the axes background color as you mentioned (in our case it's white). My question is, how can I put this background color (which shows maksed data) in the colorbar, by avoiding design a new colormap? Then I notice in the colormap methos there is one called "set_bad", I guess this is for this purpose, as in the case of "set_over" and "set_under", which will influence the colors in the colorbar when you later call the colorbar method. But is it not like this? I invented an example like below: import numpy as np import matplotlib as mat import matplotlib.pyplot as plt data = np.random.random(10000).reshape(100,100) - 0.5 data_masked = np.ma.masked_inside(data,-0.05,0.05) cmap = mat.cm.jet cmap.set_bad('0.5') fig,ax = plt.subplots(1,1) lev = [-0.5,-0.4,-0.3,-0.2,-0.1,-0.05,0,0.05,0.1,0.2,0.3,0.4,0.5] cas = ax.contourf(data_masked,levels=lev,cmap=cmap) plt.colorbar(cas,ticks=lev) In this example, how can I make the colors between -0.05 to 0.05 as white, if I don't want to bother write a new colormap. Thanks a lot for your time, I hope this case could be useful for others as I am sure it's very widely used in geographic related sciences. Cheers, Chao On Sat, Mar 1, 2014 at 9:16 PM, Eric Firing [via matplotlib] < ml-...@n5...> wrote: > On 2014/03/01 9:57 AM, Chao YUE wrote: > > > Dear all, > > > > In many cases in geoscience mapping we want to show the some missing > values > > as some special color in the colorbar. like attached one. > > > > I know there is one method in matplotlib colormap called "set_bad", > official > > docs says: > > > > Set color to be used for masked values. > > > > But I don't know how to make this work when I call the colorbar method. > > It is not a matter of calling the colorbar method, but of setting up the > colormap used on the color-mapped plot for which the colorbar is made. > > The one wrinkle to this is that if you are using contourf, the masked > regions are not filled at all, so they take on the color of the > background. To give them the color you assigned to the colormap with > set_bad, you need to assign that same color to the background, e.g. > > ax.set_axis_bgcolor("#bdb76b") > > On re-reading your message, however, I think you are asking something > else, but it is not clear to me from your example exactly what you are > trying to do. > > The colorbar is strictly for a range or sequence of colors, which can > include triangle regions for the "over" and "under" values; there is no > place on the colorbar for a "bad" or "missing" value. Where would you > put one? I don't see any such region on the example colorbar you > attached. > > Eric > > > > > Is there anyone who have the some successful experience? > > > > Thanks a lot in advance! > > > > Chao > > -- > > > *********************************************************************************** > > > Chao YUE > > Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) > > UMR 1572 CEA-CNRS-UVSQ > > Batiment 712 - Pe 119 > > 91191 GIF Sur YVETTE Cedex > > Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 > > > ************************************************************************************ > > > > > > > > ------------------------------------------------------------------------------ > > > Flow-based real-time traffic analytics software. Cisco certified tool. > > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > > Customize your own dashboards, set traffic alerts and generate reports. > > Network behavioral analysis & security monitoring. All-in-one tool. > > > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > > > > > > > > _______________________________________________ > > Matplotlib-users mailing list > > [hidden email] <http://user/SendEmail.jtp?type=node&node=42950&i=0> > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > > ------------------------------------------------------------------------------ > > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > [hidden email] <http://user/SendEmail.jtp?type=node&node=42950&i=1> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://matplotlib.1069221.n5.nabble.com/How-can-I-put-a-white-area-in-the-middle-of-colorbar-showing-the-masked-data-tp42948p42950.html > To start a new topic under matplotlib - users, email > ml-...@n5... > To unsubscribe from matplotlib, click here<http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2&code=Y2hhb3l1ZWpveUBnbWFpbC5jb218MnwxMzg1NzAzMzQx> > . > NAML<http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ colorbar_eg.png (74K) <http://matplotlib.1069221.n5.nabble.com/attachment/42951/0/colorbar_eg.png> -- View this message in context: http://matplotlib.1069221.n5.nabble.com/How-can-I-put-a-white-area-in-the-middle-of-colorbar-showing-the-masked-data-tp42948p42951.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Eric F. <ef...@ha...> - 2014-03-01 20:15:29
|
On 2014/03/01 9:57 AM, Chao YUE wrote: > Dear all, > > In many cases in geoscience mapping we want to show the some missing values > as some special color in the colorbar. like attached one. > > I know there is one method in matplotlib colormap called "set_bad", official > docs says: > > Set color to be used for masked values. > > But I don't know how to make this work when I call the colorbar method. It is not a matter of calling the colorbar method, but of setting up the colormap used on the color-mapped plot for which the colorbar is made. The one wrinkle to this is that if you are using contourf, the masked regions are not filled at all, so they take on the color of the background. To give them the color you assigned to the colormap with set_bad, you need to assign that same color to the background, e.g. ax.set_axis_bgcolor("#bdb76b") On re-reading your message, however, I think you are asking something else, but it is not clear to me from your example exactly what you are trying to do. The colorbar is strictly for a range or sequence of colors, which can include triangle regions for the "over" and "under" values; there is no place on the colorbar for a "bad" or "missing" value. Where would you put one? I don't see any such region on the example colorbar you attached. Eric > Is there anyone who have the some successful experience? > > Thanks a lot in advance! > > Chao > -- > *********************************************************************************** > Chao YUE > Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) > UMR 1572 CEA-CNRS-UVSQ > Batiment 712 - Pe 119 > 91191 GIF Sur YVETTE Cedex > Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 > ************************************************************************************ > > > ------------------------------------------------------------------------------ > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Chao Y. <cha...@gm...> - 2014-03-01 19:59:07
|
sorry, the attached file may lack surfix type, here is the correct one. Cheers, chao On Sat, Mar 1, 2014 at 8:57 PM, Chao YUE <cha...@gm...> wrote: > Dear all, > > In many cases in geoscience mapping we want to show the some missing values > as some special color in the colorbar. like attached one. > > I know there is one method in matplotlib colormap called "set_bad", > official > docs says: > > Set color to be used for masked values. > > But I don't know how to make this work when I call the colorbar method. > Is there anyone who have the some successful experience? > > Thanks a lot in advance! > > Chao > -- > > *********************************************************************************** > Chao YUE > Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) > UMR 1572 CEA-CNRS-UVSQ > Batiment 712 - Pe 119 > 91191 GIF Sur YVETTE Cedex > Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 > > ************************************************************************************ > -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ |
From: Chao Y. <cha...@gm...> - 2014-03-01 19:57:51
|
Dear all, In many cases in geoscience mapping we want to show the some missing values as some special color in the colorbar. like attached one. I know there is one method in matplotlib colormap called "set_bad", official docs says: Set color to be used for masked values. But I don't know how to make this work when I call the colorbar method. Is there anyone who have the some successful experience? Thanks a lot in advance! Chao -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ |