SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

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
(8)
2
(4)
3
(2)
4
(9)
5
(7)
6
(3)
7
(6)
8
(5)
9
(2)
10
(7)
11
(3)
12
(9)
13
(2)
14
(1)
15
(2)
16
(2)
17
(5)
18
(5)
19
(8)
20
(3)
21
(1)
22
(6)
23
(3)
24
(3)
25
(2)
26
(16)
27
(1)
28
(1)
29
(2)
30
(5)




Showing 2 results of 2

From: Joe K. <jof...@gm...> - 2013年04月15日 11:57:54
> Apart from implementing this natively in matplotlib, I was thinking if
> I could work around this limitation for our purposes in the following
> way: My objects to draw will always sit in a Collection. I could derive
> my own Collection class with a draw() method that changes the
> linewidth of the collections, taking into account the current
> axes.transData and figure.dpi. Using that I should be able to
> achieve my goal, right? (given that I restrict myself to plots with
> the same scaling in all directions)
>
>
Not to plug one of my own answers, but there's an example of using a
callback to keep linewidths in data coordinates here:
http://stackoverflow.com/a/15673254/325565
Have a look at the second example in the answer for the callback approach.
Using something like ``shapely`` to buffer your lines as the first example
does is also an option.
Hope that helps a bit anyway,
-Joe
From: Michael W. <wim...@gm...> - 2013年04月15日 10:04:54
Dear Mike,
thanks for your quick answer! Sorry for the late reply, I was away over the
weekend.
We are using matplotlib to plot two-dimensional and three-dimensional
(mostly regular) lattices (it's a physics application), with grid sites being
represented by a symbol and links representes by lines. The size of these
grids varies strongly (i.e. how many symbols and lines are plotted), and it
would be easiest if I could specify linewidths relative to some data coordinate
system (e.g. the line width being 5% of the grid spacing).
Arguably, this is not what matplotlib is intended for, but sometimes we also
want to plot data information on top of that lattice, and then the
tools of matplotlib are extremely handy.
Also, what I have in mind will always be for a linear-scale, unit
aspect-ratio plot, so that the problems you mentioned (log-scale,
different scaling in different directions) would not be applicable.
In the general case I agree one would need to make the lines
actually a filled stroke.
I'll nevertheless file a ticket. On github?
Apart from implementing this natively in matplotlib, I was thinking if
I could work around this limitation for our purposes in the following
way: My objects to draw will always sit in a Collection. I could derive
my own Collection class with a draw() method that changes the
linewidth of the collections, taking into account the current
axes.transData and figure.dpi. Using that I should be able to
achieve my goal, right? (given that I restrict myself to plots with
the same scaling in all directions)
Michael
2013年4月12日 Michael Droettboom <md...@st...>:
> Unfortunately, I don't think there is a way to do this at present. Out
> of curiosity, what is the use case?
>
> I wonder if the best way to do this would be to expose the stroking to
> the Python level, so given a line one could get a filled path that is
> the stroked line. I'm not sure how else this could work, since the
> zooming could be different in each direction, etc., or could even by
> log-scaled etc.
>
> Would you mind creating an issue ticket for this? (Patches welcome,
> too, of course, and I can provide pointers if you want to take this on
> yourself...)
>
> Mike
>
> On 04/12/2013 05:34 AM, Michael Wimmer wrote:
>> I have a collection of Patches and Lines that have their coordinates in
>> data space, i.e. like in the following example:
>>
>>
>> import matplotlib.pyplot as plt
>> import matplotlib.patches as mpatches
>> import matplotlib.collections as mcollections
>> import matplotlib.lines as mlines
>>
>> fig = plt.figure()
>> ax = fig.add_subplot(111)
>>
>> patches = []
>> patches.append(mlines.Line2D((0,1),(0,1), linewidth=1))
>> patches.append(mpatches.Circle((0,0), 0.25, linewidth=1))
>> patches.append(mpatches.Circle((1,1), 0.25, linewidth=1))
>>
>> coll = mcollections.PatchCollection(patches)
>> ax.add_collection(coll)
>> ax.autoscale_view()
>>
>> plt.show()
>>
>>
>> Now, in this example the line width is always given with respect to the
>> screen space, i.e. does not change when I zoom into the plot. Is it
>> possible to specify a linewidth with respect to data space? I.e. to say
>> that a line (in both the Line2D and the Circle) should be let's say 0.1
>> in data space, and thus scale accordingly if I zoom in?
>>
>> -Michael
>>
>> ------------------------------------------------------------------------------
>> Precog is a next-generation analytics platform capable of advanced
>> analytics on semi-structured data. The platform includes APIs for building
>> apps and a phenomenal toolset for data science. Developers can use
>> our toolset for easy data analysis & visualization. Get a free account!
>> http://www2.precog.com/precogplatform/slashdotnewsletter
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
> ------------------------------------------------------------------------------
> Precog is a next-generation analytics platform capable of advanced
> analytics on semi-structured data. The platform includes APIs for building
> apps and a phenomenal toolset for data science. Developers can use
> our toolset for easy data analysis & visualization. Get a free account!
> http://www2.precog.com/precogplatform/slashdotnewsletter
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Showing 2 results of 2

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /