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
(3) |
2
|
3
|
4
(1) |
5
(1) |
6
|
7
|
8
|
9
|
10
|
11
(1) |
12
(1) |
13
|
14
|
15
|
16
(3) |
17
(1) |
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
(7) |
30
(4) |
31
|
From: Jens N. <jen...@gm...> - 2015-10-30 12:50:25
|
If that fails that is a bug in PyQt/Qt or in your anaconda installation and not a Matplotlib bug. You could try reinstall QT and PyQt. As a workaround you can tell Matplotlib to use a different backend http://matplotlib.org/faq/usage_faq.html#what-is-a-backend BTW the matplotlib mailing list has changed to mat...@py.... best Jens fre. 30. okt. 2015 kl. 12.43 skrev Jonno <jon...@gm...>: > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > ImportError: DLL load failed: The specified module could not be found. > > On Fri, Oct 30, 2015 at 2:26 AM, Jens Nielsen <jen...@gm...> > wrote: > >> It sounds like your PyQt package is broken. >> >> What happens if you do: >> >> from PyQt4 import QtCore, QtGui >> >> in a python shell >> >> /Jens >> >> fre. 30. okt. 2015 kl. 03.06 skrev Jonno <jon...@gm...>: >> >>> Not sure where to post this. >>> >>> I have a fresh Anaconda Win64 python 2.7.10 install which I then updated >>> using conda update --all. >>> >>> If it try to: >>> from pylab import * >>> I get the following: >>> >>> >>> File "~\Anaconda\lib\site-packages\matplotlib\backends\qt_compat.py", >>> line 91, in <module> >>> from PyQt4 import QtCore, QtGui >>> ImportError: DLL load failed: The specified module could not be found. >>> >>> >>> I have the following installed: >>> qt: 4.8.7 >>> pyqt 4.11.4 >>> matplotlib 1.4.3 >>> >>> Should I open an issue on matplotlib github? >>> >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> >> > |
From: Jonno <jon...@gm...> - 2015-10-30 12:43:49
|
Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: DLL load failed: The specified module could not be found. On Fri, Oct 30, 2015 at 2:26 AM, Jens Nielsen <jen...@gm...> wrote: > It sounds like your PyQt package is broken. > > What happens if you do: > > from PyQt4 import QtCore, QtGui > > in a python shell > > /Jens > > fre. 30. okt. 2015 kl. 03.06 skrev Jonno <jon...@gm...>: > >> Not sure where to post this. >> >> I have a fresh Anaconda Win64 python 2.7.10 install which I then updated >> using conda update --all. >> >> If it try to: >> from pylab import * >> I get the following: >> >> >> File "~\Anaconda\lib\site-packages\matplotlib\backends\qt_compat.py", >> line 91, in <module> >> from PyQt4 import QtCore, QtGui >> ImportError: DLL load failed: The specified module could not be found. >> >> >> I have the following installed: >> qt: 4.8.7 >> pyqt 4.11.4 >> matplotlib 1.4.3 >> >> Should I open an issue on matplotlib github? >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> > |
From: Jens N. <jen...@gm...> - 2015-10-30 07:27:14
|
It sounds like your PyQt package is broken. What happens if you do: from PyQt4 import QtCore, QtGui in a python shell /Jens fre. 30. okt. 2015 kl. 03.06 skrev Jonno <jon...@gm...>: > Not sure where to post this. > > I have a fresh Anaconda Win64 python 2.7.10 install which I then updated > using conda update --all. > > If it try to: > from pylab import * > I get the following: > > > File "~\Anaconda\lib\site-packages\matplotlib\backends\qt_compat.py", line > 91, in <module> > from PyQt4 import QtCore, QtGui > ImportError: DLL load failed: The specified module could not be found. > > > I have the following installed: > qt: 4.8.7 > pyqt 4.11.4 > matplotlib 1.4.3 > > Should I open an issue on matplotlib github? > > > ------------------------------------------------------------------------------ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Jonno <jon...@gm...> - 2015-10-30 03:06:20
|
Not sure where to post this. I have a fresh Anaconda Win64 python 2.7.10 install which I then updated using conda update --all. If it try to: from pylab import * I get the following: File "~\Anaconda\lib\site-packages\matplotlib\backends\qt_compat.py", line 91, in <module> from PyQt4 import QtCore, QtGui ImportError: DLL load failed: The specified module could not be found. I have the following installed: qt: 4.8.7 pyqt 4.11.4 matplotlib 1.4.3 Should I open an issue on matplotlib github? |
From: questions a. <que...@gm...> - 2015-10-29 20:14:02
|
Wonderful! thank you! On Fri, Oct 30, 2015 at 4:51 AM, Joshua Klein <mob...@gm...> wrote: > My mistake, I thought you were using a DataFrame, not a Series. Instead do > this > > colors = ['r' if row > 0 else 'b' for i, row in meantempanomaly.iteritems()] > meantempanomaly.plot(kind='bar', color=colors) > > > > On Thu, Oct 29, 2015 at 5:43 AM, questions anon <que...@gm...> > wrote: > >> Thanks for taking the time to respond >> >> I am receiving the error: >> AttributeError: 'Series' object has no attribute 'iterrow' >> >> I will look into this further. >> thank you >> >> >> On Thu, Oct 29, 2015 at 2:31 PM, Joshua Klein <mob...@gm...> >> wrote: >> >>> The pandas plot function doesn’t take colors as it does ‘x’ or ‘y’, but >>> it lets you pass color information just as you would with raw matplotlib >>> code, which means you can pass it a sequence of colors which match the >>> length of your sequence of drawn observations. >>> >>> # compute color codes using a ternary expression in a list comprehension over the DataFrame >>> colors = ['r' if row.anomaly > 0 else 'b' for i, row in meantempanomaly.iterrows()] >>> meantempanomaly.plot(kind='bar', color=colors) >>> >>> >>> >>> On Wed, Oct 28, 2015 at 9:54 PM, questions anon < >>> que...@gm...> wrote: >>> >>>> I have calculated annual temperature anomaly and I would like to plot >>>> as a bar plot with all values positive make red and all values negative >>>> make blue >>>> >>>> I am using pandas and the time series data in this example are called >>>> 'anomaly' >>>> >>>> mybarplot=anomaly.plot(kind='bar') >>>> >>>> the data look like this: >>>> >>>> time >>>> 2003-01-01 -0.370800 >>>> 2004-01-01 -0.498199 >>>> 2005-01-01 0.246118 >>>> 2006-01-01 -0.313321 >>>> 2007-01-01 0.585050 >>>> 2008-01-01 -0.227976 >>>> 2009-01-01 0.439337 >>>> 2010-01-01 0.135607 >>>> 2011-01-01 0.106105 >>>> 2012-01-01 -0.102002 >>>> Freq: AS-JAN, dtype: float64 >>>> >>>> is there some simple way of writing: >>>> meantempanomaly.plot(kind='bar', anomaly>0:'r', anomaly<0:'b' ) >>>> >>>> Any feedback will be greatly appreciated >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> Matplotlib-users mailing list >>>> Mat...@li... >>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>>> >>>> >>> >> > |
From: Joshua K. <mob...@gm...> - 2015-10-29 17:52:23
|
My mistake, I thought you were using a DataFrame, not a Series. Instead do this colors = ['r' if row > 0 else 'b' for i, row in meantempanomaly.iteritems()] meantempanomaly.plot(kind='bar', color=colors) On Thu, Oct 29, 2015 at 5:43 AM, questions anon <que...@gm...> wrote: > Thanks for taking the time to respond > > I am receiving the error: > AttributeError: 'Series' object has no attribute 'iterrow' > > I will look into this further. > thank you > > > On Thu, Oct 29, 2015 at 2:31 PM, Joshua Klein <mob...@gm...> > wrote: > >> The pandas plot function doesn’t take colors as it does ‘x’ or ‘y’, but >> it lets you pass color information just as you would with raw matplotlib >> code, which means you can pass it a sequence of colors which match the >> length of your sequence of drawn observations. >> >> # compute color codes using a ternary expression in a list comprehension over the DataFrame >> colors = ['r' if row.anomaly > 0 else 'b' for i, row in meantempanomaly.iterrows()] >> meantempanomaly.plot(kind='bar', color=colors) >> >> >> >> On Wed, Oct 28, 2015 at 9:54 PM, questions anon <que...@gm... >> > wrote: >> >>> I have calculated annual temperature anomaly and I would like to plot as >>> a bar plot with all values positive make red and all values negative make >>> blue >>> >>> I am using pandas and the time series data in this example are called >>> 'anomaly' >>> >>> mybarplot=anomaly.plot(kind='bar') >>> >>> the data look like this: >>> >>> time >>> 2003-01-01 -0.370800 >>> 2004-01-01 -0.498199 >>> 2005-01-01 0.246118 >>> 2006-01-01 -0.313321 >>> 2007-01-01 0.585050 >>> 2008-01-01 -0.227976 >>> 2009-01-01 0.439337 >>> 2010-01-01 0.135607 >>> 2011-01-01 0.106105 >>> 2012-01-01 -0.102002 >>> Freq: AS-JAN, dtype: float64 >>> >>> is there some simple way of writing: >>> meantempanomaly.plot(kind='bar', anomaly>0:'r', anomaly<0:'b' ) >>> >>> Any feedback will be greatly appreciated >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> >>> >> > |
From: Benjamin R. <ben...@gm...> - 2015-10-29 16:19:39
|
An axes can only belong to one figure at a time. And I also don't think I have ever seen anyone try and transfer an axes from one figure to another. You *might* have luck with inset locators from axes_grid: http://matplotlib.org/examples/axes_grid/inset_locator_demo.html Cheers! Ben Root On Thu, Oct 29, 2015 at 12:07 PM, Alejandro Weinstein < ale...@gm...> wrote: > Hi, > > I have a previously draw plot that I want to place as an inset in > another figure. I've tried with passing the previously drawn axes as > the `axes` parameter to the `add_axes` method of the figure, and also > tried using the `set_axes` method of the new axes, without success: I > get the new inset axes, but without the previously drawn plot, in both > cases. > > The following code shows both approaches: > > # Passing the inset axes as a parameter to add_axes > fig_in, ax_in = plt.subplots() > ax_in.plot([1,2,3]) > fig, ax = plt.subplots() > ax.plot([1,2,1]) > fig.add_axes([0.72, 0.72, 0.16, 0.16], axes=ax_in) > > # Using set_axes > fig_in, ax_in = plt.subplots() > ax_in.plot([1,2,3]) > fig, ax = plt.subplots() > ax.plot([1,2,1]) > ax_new = fig.add_axes([0.72, 0.72, 0.16, 0.16]) > ax_new.set_axes(ax_in) > > Any help with this will be appreciated. > > Regards, > Alejandro > > > ------------------------------------------------------------------------------ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Alejandro W. <ale...@gm...> - 2015-10-29 16:07:46
|
Hi, I have a previously draw plot that I want to place as an inset in another figure. I've tried with passing the previously drawn axes as the `axes` parameter to the `add_axes` method of the figure, and also tried using the `set_axes` method of the new axes, without success: I get the new inset axes, but without the previously drawn plot, in both cases. The following code shows both approaches: # Passing the inset axes as a parameter to add_axes fig_in, ax_in = plt.subplots() ax_in.plot([1,2,3]) fig, ax = plt.subplots() ax.plot([1,2,1]) fig.add_axes([0.72, 0.72, 0.16, 0.16], axes=ax_in) # Using set_axes fig_in, ax_in = plt.subplots() ax_in.plot([1,2,3]) fig, ax = plt.subplots() ax.plot([1,2,1]) ax_new = fig.add_axes([0.72, 0.72, 0.16, 0.16]) ax_new.set_axes(ax_in) Any help with this will be appreciated. Regards, Alejandro |
From: questions a. <que...@gm...> - 2015-10-29 09:43:08
|
Thanks for taking the time to respond I am receiving the error: AttributeError: 'Series' object has no attribute 'iterrow' I will look into this further. thank you On Thu, Oct 29, 2015 at 2:31 PM, Joshua Klein <mob...@gm...> wrote: > The pandas plot function doesn’t take colors as it does ‘x’ or ‘y’, but it > lets you pass color information just as you would with raw matplotlib code, > which means you can pass it a sequence of colors which match the length of > your sequence of drawn observations. > > # compute color codes using a ternary expression in a list comprehension over the DataFrame > colors = ['r' if row.anomaly > 0 else 'b' for i, row in meantempanomaly.iterrows()] > meantempanomaly.plot(kind='bar', color=colors) > > > > On Wed, Oct 28, 2015 at 9:54 PM, questions anon <que...@gm...> > wrote: > >> I have calculated annual temperature anomaly and I would like to plot as >> a bar plot with all values positive make red and all values negative make >> blue >> >> I am using pandas and the time series data in this example are called >> 'anomaly' >> >> mybarplot=anomaly.plot(kind='bar') >> >> the data look like this: >> >> time >> 2003-01-01 -0.370800 >> 2004-01-01 -0.498199 >> 2005-01-01 0.246118 >> 2006-01-01 -0.313321 >> 2007-01-01 0.585050 >> 2008-01-01 -0.227976 >> 2009-01-01 0.439337 >> 2010-01-01 0.135607 >> 2011-01-01 0.106105 >> 2012-01-01 -0.102002 >> Freq: AS-JAN, dtype: float64 >> >> is there some simple way of writing: >> meantempanomaly.plot(kind='bar', anomaly>0:'r', anomaly<0:'b' ) >> >> Any feedback will be greatly appreciated >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> >> > |
From: Joshua K. <mob...@gm...> - 2015-10-29 03:32:01
|
The pandas plot function doesn’t take colors as it does ‘x’ or ‘y’, but it lets you pass color information just as you would with raw matplotlib code, which means you can pass it a sequence of colors which match the length of your sequence of drawn observations. # compute color codes using a ternary expression in a list comprehension over the DataFrame colors = ['r' if row.anomaly > 0 else 'b' for i, row in meantempanomaly.iterrows()] meantempanomaly.plot(kind='bar', color=colors) On Wed, Oct 28, 2015 at 9:54 PM, questions anon <que...@gm...> wrote: > I have calculated annual temperature anomaly and I would like to plot as a > bar plot with all values positive make red and all values negative make blue > > I am using pandas and the time series data in this example are called > 'anomaly' > > mybarplot=anomaly.plot(kind='bar') > > the data look like this: > > time > 2003-01-01 -0.370800 > 2004-01-01 -0.498199 > 2005-01-01 0.246118 > 2006-01-01 -0.313321 > 2007-01-01 0.585050 > 2008-01-01 -0.227976 > 2009-01-01 0.439337 > 2010-01-01 0.135607 > 2011-01-01 0.106105 > 2012-01-01 -0.102002 > Freq: AS-JAN, dtype: float64 > > is there some simple way of writing: > meantempanomaly.plot(kind='bar', anomaly>0:'r', anomaly<0:'b' ) > > Any feedback will be greatly appreciated > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > |
From: questions a. <que...@gm...> - 2015-10-29 01:54:07
|
I have calculated annual temperature anomaly and I would like to plot as a bar plot with all values positive make red and all values negative make blue I am using pandas and the time series data in this example are called 'anomaly' mybarplot=anomaly.plot(kind='bar') the data look like this: time 2003-01-01 -0.370800 2004-01-01 -0.498199 2005-01-01 0.246118 2006-01-01 -0.313321 2007-01-01 0.585050 2008-01-01 -0.227976 2009-01-01 0.439337 2010-01-01 0.135607 2011-01-01 0.106105 2012-01-01 -0.102002 Freq: AS-JAN, dtype: float64 is there some simple way of writing: meantempanomaly.plot(kind='bar', anomaly>0:'r', anomaly<0:'b' ) Any feedback will be greatly appreciated |
From: Phil C. <phi...@an...> - 2015-10-17 00:26:54
|
Wow, that's fantastic Ben. Thanks so much for finding that, it's just what I need! Regards, - Phil Benjamin Root wrote: > Looks like someone else figured out a creative solution using quiver: > http://stackoverflow.com/questions/19918502/sawtooth-line-style-in-matplotlib > > Here it is (slightly cleaned up): > > |import matplotlib.pyplotas plt > import numpyas np > > x= np.linspace(0, 2*np.pi, 100) > y= np.sin(x) > > dx= np.diff(x) > dy= np.diff(y) > > x2= np.linspace(0, 2*np.pi, 10) > y2= np.sin(x2) > > dx= np.zeros_like(x2) + 1e-12 > dy= np.sin(x2+dx) - y2 > > length= np.hypot(dx,dy) > dx/= length > dy/= length > > fig, ax= plt.subplots() > ax.set_aspect("equal") > ax.plot(x, y, lw=4) > > size= 20 > ax.quiver(x2, y2, -dy, dx, headaxislength=size, headlength=size, headwidth=size, color="blue") > plt.margins(0.2)| > > I don't know yet how to get rounded heads, though. Now I am looking to > see how the text box styles of "sawtooth" and "roundtooth" are handled > in the code to see if that could be exploited, instead. > > Cheers! > Ben Root > > > > On Fri, Oct 16, 2015 at 10:24 AM, Benjamin Root <ben...@gm... > <mailto:ben...@gm...>> wrote: > > Hmmm, this is actually an interesting problem. I am also a > meteorologist, so this is interesting to me. > > I haven't figured it out yet, but here are my thoughts: > > 1) There are the "^" triangle markers as well as "2" tri_up > markers: > http://nbviewer.ipython.org/github/WeatherGod/AnatomyOfMatplotlib/blob/master/AnatomyOfMatplotlib-Part3-HowToSpeakMPL.ipynb#Markers > 2) The markevery property should be set to a float value to have > the markers spaced out evenly along the line regardless of aspect > ratios and zooming (note, this assumes that the line is defined > with many vertices to give a smooth appearance). > > Problem: > Using markers and markevery in a Line2D object has an inherent > limitation: all of the markers will be drawn in the same > orientation. So, we can't orient the markers along the normal of > the line. > Also, there is no pre-defined marker for half-circles, so this > approach wouldn't work well for warm-fronts/dry-lines/etc. > > I'll have to see if a PolygonCollection + Line2D might be the > right approach here... > > Ben Root > > > > > On Fri, Oct 16, 2015 at 7:22 AM, Phil Cummins > <phi...@an... <mailto:phi...@an...>> wrote: > > Hi, > > I would like to plot "toothed" curves using basemap. These are > curves with triangles on one side, that are used to plot > pressure fronts in meteorology or thrust faults in geology. > You need to be able to say which side of the curve the > triangles should appear on. Does anyone know whether such > curves can be plotted using mtplotlib/basemap? > > Thanks, > > - Phil > > Australian National University > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > <mailto:Mat...@li...> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > -- Phil Cummins Prof. Natural Hazards Research School of Earth Sciences Australian National University |
From: Benjamin R. <ben...@gm...> - 2015-10-16 16:05:34
|
Looks like someone else figured out a creative solution using quiver: http://stackoverflow.com/questions/19918502/sawtooth-line-style-in-matplotlib Here it is (slightly cleaned up): import matplotlib.pyplot as pltimport numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) dx = np.diff(x) dy = np.diff(y) x2 = np.linspace(0, 2*np.pi, 10) y2 = np.sin(x2) dx = np.zeros_like(x2) + 1e-12 dy = np.sin(x2 + dx) - y2 length = np.hypot(dx, dy) dx /= length dy /= length fig, ax = plt.subplots() ax.set_aspect("equal") ax.plot(x, y, lw=4) size = 20 ax.quiver(x2, y2, -dy, dx, headaxislength=size, headlength=size, headwidth=size, color="blue") plt.margins(0.2) I don't know yet how to get rounded heads, though. Now I am looking to see how the text box styles of "sawtooth" and "roundtooth" are handled in the code to see if that could be exploited, instead. Cheers! Ben Root On Fri, Oct 16, 2015 at 10:24 AM, Benjamin Root <ben...@gm...> wrote: > Hmmm, this is actually an interesting problem. I am also a meteorologist, > so this is interesting to me. > > I haven't figured it out yet, but here are my thoughts: > > 1) There are the "^" triangle markers as well as "2" tri_up markers: > http://nbviewer.ipython.org/github/WeatherGod/AnatomyOfMatplotlib/blob/master/AnatomyOfMatplotlib-Part3-HowToSpeakMPL.ipynb#Markers > 2) The markevery property should be set to a float value to have the > markers spaced out evenly along the line regardless of aspect ratios and > zooming (note, this assumes that the line is defined with many vertices to > give a smooth appearance). > > Problem: > Using markers and markevery in a Line2D object has an inherent limitation: > all of the markers will be drawn in the same orientation. So, we can't > orient the markers along the normal of the line. > Also, there is no pre-defined marker for half-circles, so this approach > wouldn't work well for warm-fronts/dry-lines/etc. > > I'll have to see if a PolygonCollection + Line2D might be the right > approach here... > > Ben Root > > > > > On Fri, Oct 16, 2015 at 7:22 AM, Phil Cummins <phi...@an...> > wrote: > >> Hi, >> >> I would like to plot "toothed" curves using basemap. These are curves >> with triangles on one side, that are used to plot pressure fronts in >> meteorology or thrust faults in geology. You need to be able to say which >> side of the curve the triangles should appear on. Does anyone know whether >> such curves can be plotted using mtplotlib/basemap? >> >> Thanks, >> >> - Phil >> >> Australian National University >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> >> > |
From: Benjamin R. <ben...@gm...> - 2015-10-16 14:25:01
|
Hmmm, this is actually an interesting problem. I am also a meteorologist, so this is interesting to me. I haven't figured it out yet, but here are my thoughts: 1) There are the "^" triangle markers as well as "2" tri_up markers: http://nbviewer.ipython.org/github/WeatherGod/AnatomyOfMatplotlib/blob/master/AnatomyOfMatplotlib-Part3-HowToSpeakMPL.ipynb#Markers 2) The markevery property should be set to a float value to have the markers spaced out evenly along the line regardless of aspect ratios and zooming (note, this assumes that the line is defined with many vertices to give a smooth appearance). Problem: Using markers and markevery in a Line2D object has an inherent limitation: all of the markers will be drawn in the same orientation. So, we can't orient the markers along the normal of the line. Also, there is no pre-defined marker for half-circles, so this approach wouldn't work well for warm-fronts/dry-lines/etc. I'll have to see if a PolygonCollection + Line2D might be the right approach here... Ben Root On Fri, Oct 16, 2015 at 7:22 AM, Phil Cummins <phi...@an...> wrote: > Hi, > > I would like to plot "toothed" curves using basemap. These are curves with > triangles on one side, that are used to plot pressure fronts in meteorology > or thrust faults in geology. You need to be able to say which side of the > curve the triangles should appear on. Does anyone know whether such curves > can be plotted using mtplotlib/basemap? > > Thanks, > > - Phil > > Australian National University > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > |
From: Phil C. <phi...@an...> - 2015-10-16 11:22:53
|
Hi, I would like to plot "toothed" curves using basemap. These are curves with triangles on one side, that are used to plot pressure fronts in meteorology or thrust faults in geology. You need to be able to say which side of the curve the triangles should appear on. Does anyone know whether such curves can be plotted using mtplotlib/basemap? Thanks, - Phil Australian National University |
From: Thomas C. <tca...@gm...> - 2015-10-12 03:21:08
|
I do not think the hatch linewith is currently controllable. It is still hard coded <https://github.com/matplotlib/matplotlib/blob/master/src/_backend_agg.h#L370> in the Agg backend. Making sure we have a reasonable api to set the hatch linewidth and then making sure it is well supported across all of our backends is a pretty major task which is why I suspect it has not been done yet. If you are interested in working on adding this feature, and improving hatching in general, we would love the help! Tom On Tue, Sep 29, 2015 at 10:47 AM Ying Liu <ube...@gm...> wrote: > Thanks in advance but Sorry to bother those who are not interested. > > I had a plot with hatch in it. But the default linewidth for hatch makes > it really hard to see in my current figure layout/scale, so I would like to > increases the hatch linewidth; > > plt.bar(ind, s1[:,3],width, color='0.85', edgecolor='black', > linewidth=[0.5],hatch='-----//////') > > The linewidth there can only change the width of the edge, but not the > hatch width; > > > I did several google searches with no solution. But I indeed noticed that > several years ago (back to year 2011), this is impossible as the hatch > linewidth is hard coded as: > > hatch_path_stroke.width(1.0); > > > But is this implemented so that I can change the hatch linewidth? > > Best regards > > Luis > > ------------------------------------------------------------------------------ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Nico S. <nic...@gm...> - 2015-10-11 12:27:38
|
Hi everyone, Given a legend [1], I'm trying to figure out which plot objects it references. Is this possible at all? The reverse would also be fine, i.e., given a plot object (e.g., a line), find the legend(s) in which it is referenced. Cheers, Nico [1] http://matplotlib.org/api/legend_api.html |
From: Werner <wer...@gm...> - 2015-10-05 07:56:58
|
On 10/4/2015 12:26, Yves Le Feuvre wrote: > Hello, > > on my macOSX (didn't check other OS), scroll_event misses every other > two event when I use mouse wheel > (wx.EVT_MOUSEWHEEL works fine) What version of wxPython and MPL are you using? I just tried with and don't see any issues with skipped mouse wheel events: wxPython classic 3.0.2 classic on Python 2.7 and wxPython Phoenix a recent snapshot with both Python 2.7 and Python 3.4, my MPL version is 1.4.3 with PR 3421 applied (https://github.com/matplotlib/matplotlib/pull/3421). BUT, all this on Windows 8.1, so maybe a OSX issue? Werner |
From: Yves Le F. <yve...@u-...> - 2015-10-04 10:44:03
|
Hello, on my macOSX (didn't check other OS), scroll_event misses every other two event when I use mouse wheel (wx.EVT_MOUSEWHEEL works fine) exemple code: import wx import numpy import matplotlib import sys from matplotlib.figure import Figure from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas class TestFrame(wx.Frame): def __init__(self,parent,title): wx.Frame.__init__(self,parent,title=title,size=(500,500)) self.sp = wx.SplitterWindow(self) self.p1 = WxPanel(self.sp) self.p2 = MplPanel(self.sp) self.sp.SplitVertically(self.p1,self.p2) class WxPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent,-1,size=(50,50)) self.Bind(wx.EVT_MOUSEWHEEL,self.OnMouseWheel) def OnMouseWheel(self,event): print "wx scroll event" sys.stdout.flush() class MplPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent,-1,size=(50,50)) self.figure = Figure() self.axes = self.figure.add_subplot(111) self.axes.plot(numpy.arange(0.0,10,1.0),[0,1,0,1,0,2,1,2,1,0]) self.canvas = FigureCanvas(self,-1,self.figure) self.canvas.mpl_connect('scroll_event', self.OnMouseWheel) def OnMouseWheel(self,event): print "mpl scroll event" sys.stdout.flush() app = wx.App(redirect=False) frame = TestFrame(None, 'Hello World!') frame.Show() app.MainLoop() any idea? |
From: Paul H. <pmh...@gm...> - 2015-10-01 17:54:20
|
On Thu, Oct 1, 2015 at 9:40 AM, Thomas Caswell <tca...@gm...> wrote: > Have a look at how cmocean (https://github.com/matplotlib/cmocean) works > under the hood. > > I think the options are: > - use a module to supply your color maps (from my_cmap_collection > import my_cmap) and then pass those objects through to the functions > - have your module call the register code on import (or on calling a > helper function which call the registration code) so that you can simply > pass the string name through and `get_cmap` will do the right thing. > > Tom > FWIW -- this second option is exactly what I do for custom colormaps and Axes scales. https://github.com/Geosyntec/wqio/blob/master/wqio/utils/__init__.py#L10 |
From: Thomas C. <tca...@gm...> - 2015-10-01 16:40:39
|
Have a look at how cmocean (https://github.com/matplotlib/cmocean) works under the hood. I think the options are: - use a module to supply your color maps (from my_cmap_collection import my_cmap) and then pass those objects through to the functions - have your module call the register code on import (or on calling a helper function which call the registration code) so that you can simply pass the string name through and `get_cmap` will do the right thing. Tom On Thu, Oct 1, 2015 at 6:20 AM Eric Gayer <eg...@gm...> wrote: > Hi all, > > I have a question about how to permanently register customs colormap into > matplolib. I went across the cookbook and the definition of cm.register, I > also checked on stack overflow and found this post > > >> http://stackoverflow.com/questions/8738239/permanently-registering-colormaps-in-matplotlib >> > > but I still quite don't understand how the registration works, and how to > make the registration working across different scripts. > > I have a set of colormap that I manage to transform from their original > format (.cpt or .clr) to matplotlib object : > > <matplotlib.colors.LinearSegmentedColormap object at 0x1033406d0> > > My first though was that I could register these colormap objects once as > list for exemple, and then call them anytime in any script, the same way we > do call any matploltlib colormap preset with matplotlib.cm.jet etc... > > It looks like this is not possible since register a colormap, and call it > using get_map(mycmap) does not work across different script. > > I clearly don't get the logic behind the registration of the colormap, and > I am looking for a way to stock all my custom colormap somewhere in a file > or module, that I could import in every script and then call the colormap > the way we call the matplotlib colormap collection, maybe not using > matplolib.cm. but with a custom function similar to. > > Thanks for helping me understand le logic of "saving"/registring colormaps > and pointing me to direction to create my own colormap collection and a > simple way to use them > > Eric > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Eric G. <eg...@gm...> - 2015-10-01 10:20:03
|
Hi all, I have a question about how to permanently register customs colormap into matplolib. I went across the cookbook and the definition of cm.register, I also checked on stack overflow and found this post http://stackoverflow.com/questions/8738239/permanently-registering-colormaps-in-matplotlib > but I still quite don't understand how the registration works, and how to make the registration working across different scripts. I have a set of colormap that I manage to transform from their original format (.cpt or .clr) to matplotlib object : <matplotlib.colors.LinearSegmentedColormap object at 0x1033406d0> My first though was that I could register these colormap objects once as list for exemple, and then call them anytime in any script, the same way we do call any matploltlib colormap preset with matplotlib.cm.jet etc... It looks like this is not possible since register a colormap, and call it using get_map(mycmap) does not work across different script. I clearly don't get the logic behind the registration of the colormap, and I am looking for a way to stock all my custom colormap somewhere in a file or module, that I could import in every script and then call the colormap the way we call the matplotlib colormap collection, maybe not using matplolib.cm. but with a custom function similar to. Thanks for helping me understand le logic of "saving"/registring colormaps and pointing me to direction to create my own colormap collection and a simple way to use them Eric |