SourceForge logo
SourceForge logo
Menu

matplotlib-devel — matplotlib developers

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
(1)
Nov
(33)
Dec
(20)
2004 Jan
(7)
Feb
(44)
Mar
(51)
Apr
(43)
May
(43)
Jun
(36)
Jul
(61)
Aug
(44)
Sep
(25)
Oct
(82)
Nov
(97)
Dec
(47)
2005 Jan
(77)
Feb
(143)
Mar
(42)
Apr
(31)
May
(93)
Jun
(93)
Jul
(35)
Aug
(78)
Sep
(56)
Oct
(44)
Nov
(72)
Dec
(75)
2006 Jan
(116)
Feb
(99)
Mar
(181)
Apr
(171)
May
(112)
Jun
(86)
Jul
(91)
Aug
(111)
Sep
(77)
Oct
(72)
Nov
(57)
Dec
(51)
2007 Jan
(64)
Feb
(116)
Mar
(70)
Apr
(74)
May
(53)
Jun
(40)
Jul
(519)
Aug
(151)
Sep
(132)
Oct
(74)
Nov
(282)
Dec
(190)
2008 Jan
(141)
Feb
(67)
Mar
(69)
Apr
(96)
May
(227)
Jun
(404)
Jul
(399)
Aug
(96)
Sep
(120)
Oct
(205)
Nov
(126)
Dec
(261)
2009 Jan
(136)
Feb
(136)
Mar
(119)
Apr
(124)
May
(155)
Jun
(98)
Jul
(136)
Aug
(292)
Sep
(174)
Oct
(126)
Nov
(126)
Dec
(79)
2010 Jan
(109)
Feb
(83)
Mar
(139)
Apr
(91)
May
(79)
Jun
(164)
Jul
(184)
Aug
(146)
Sep
(163)
Oct
(128)
Nov
(70)
Dec
(73)
2011 Jan
(235)
Feb
(165)
Mar
(147)
Apr
(86)
May
(74)
Jun
(118)
Jul
(65)
Aug
(75)
Sep
(162)
Oct
(94)
Nov
(48)
Dec
(44)
2012 Jan
(49)
Feb
(40)
Mar
(88)
Apr
(35)
May
(52)
Jun
(69)
Jul
(90)
Aug
(123)
Sep
(112)
Oct
(120)
Nov
(105)
Dec
(116)
2013 Jan
(76)
Feb
(26)
Mar
(78)
Apr
(43)
May
(61)
Jun
(53)
Jul
(147)
Aug
(85)
Sep
(83)
Oct
(122)
Nov
(18)
Dec
(27)
2014 Jan
(58)
Feb
(25)
Mar
(49)
Apr
(17)
May
(29)
Jun
(39)
Jul
(53)
Aug
(52)
Sep
(35)
Oct
(47)
Nov
(110)
Dec
(27)
2015 Jan
(50)
Feb
(93)
Mar
(96)
Apr
(30)
May
(55)
Jun
(83)
Jul
(44)
Aug
(8)
Sep
(5)
Oct
Nov
(1)
Dec
(1)
2016 Jan
Feb
Mar
(1)
Apr
May
Jun
(2)
Jul
Aug
(3)
Sep
(1)
Oct
(3)
Nov
Dec
2017 Jan
Feb
(5)
Mar
Apr
May
Jun
Jul
(3)
Aug
Sep
(7)
Oct
Nov
Dec
2018 Jan
Feb
Mar
Apr
May
Jun
Jul
(2)
Aug
Sep
Oct
Nov
Dec
S M T W T F S





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

Showing 2 results of 2

From: Benjamin R. <ben...@ou...> - 2011年04月21日 14:53:00
On Thursday, April 21, 2011, Konrad Bartkowski <k.b...@fz...>
wrote:
> Dear Ben, dear John,
>
> Thank You for the emails. Well, we have modified only the part
> influencing the modules, that we need or will need in our projects. I
> admit that apart from the deceptions connected with human perception
> (for example
> http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.151.2303 ) still
> the inaccuracy remains. Nevertheless all the surfaces we have rendered
> were unproblematic. Also the examples from the forum rendered correctly
> even for big stride. If it is unsatisfactory one can control the
> precision with the stride size.
Just to make sure, you never really described exactly what "numerical
inaccuracies" you were talking about. From the example you posted, I am
assuming that it is the overlapping/z-sorting issue. If it is something
else, then I am going to need to see some "before / after" images showing
the difference you are talking about. If it is the overlapping issue, then
the strides are only incidental to the problem. The problem exists for any
3d object, with or without strides.
The problem is one of dimensionality. While mplot3d does correctly
calculate the 3d coordinates of each vertex in the perspective coordinate
system, only one value for the depth axis can be reported for each artist.
 If the artist has many vertexes with different depth values, then a single
value will never be sufficient. It is this reduction of the depth
coordinates from many to one that is the source of the problem.
What your solution does is to not reduce the depth coordinates *as much*.
But it still does a reduction, therefore not solving the problem. The only
way to properly solve this is with a 3D rendering engine (like OpenGL).
>The modification was written under the
> assumption not to modify too much in the existing system. While writing
> the code we were naturally keeping in mind the ratio of accuracy to the
> computational effort.
> Since in our projects we didn't need the return value from the
> plot_surface we return the obtained list for the efficiency reasons. But
> if the API should remain unchanged, then one can generate also the
> previous collection and return it instead of the list, while the list is
> added.
This would cause many inconsistencies within the code. For example, if a
user wants to remove the collection from the axes, it won't work because the
collection doesn't exist in the axes object. Also, having a collection
object unconnected to any axis might cause unexpected behavior or could even
throw exceptions.
> I admit, that I didn't consider the changes You mention in the
> consecutive e-mails, since it would mean redesigning Your code. From the
> same reason I also cannot comment them – I simply don't know the
> internal structure of Your code sufficienty. Change on the level of
> Artists would probably imply a lot of other modifications in many, many
> modules.
>
That's ok. It was actually this problem that pushed me to learn matplotlib
to the point that I could become a developer. However, it took me another 6
months before I could understand the problem well enough to realize the
source of the issue and what was needed to solve it properly. If this patch
works well for your purposes, that's great, and I hope it continues to serve
you well. However, for a broader audience, it introduces too many potential
problems for us.
I hope you continue to use matplotlib and find it useful. And feel free to
continue commenting on the mplot3d module and how it can be improved!
Cheers,
Ben Root
From: Konrad B. <k.b...@fz...> - 2011年04月21日 09:52:38
Dear Ben, dear John,
 Thank You for the emails. Well, we have modified only the part
influencing the modules, that we need or will need in our projects. I
admit that apart from the deceptions connected with human perception
(for example
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.151.2303 ) still
the inaccuracy remains. Nevertheless all the surfaces we have rendered
were unproblematic. Also the examples from the forum rendered correctly
even for big stride. If it is unsatisfactory one can control the
precision with the stride size. The modification was written under the
assumption not to modify too much in the existing system. While writing
the code we were naturally keeping in mind the ratio of accuracy to the
computational effort.
 Since in our projects we didn't need the return value from the
plot_surface we return the obtained list for the efficiency reasons. But
if the API should remain unchanged, then one can generate also the
previous collection and return it instead of the list, while the list is
added.
 I admit, that I didn't consider the changes You mention in the
consecutive e-mails, since it would mean redesigning Your code. From the
same reason I also cannot comment them – I simply don't know the
internal structure of Your code sufficienty. Change on the level of
Artists would probably imply a lot of other modifications in many, many
modules.
------
Mit freundlichen Grüssen / With friendly greetings,
Konrad Bartkowski
On 04/15/11 23:02, Benjamin Root wrote:
>
>
> On Fri, Apr 15, 2011 at 3:54 PM, John Hunter <jd...@gm...
> <mailto:jd...@gm...>> wrote:
>
>
>
> On Fri, Apr 15, 2011 at 3:42 PM, Benjamin Root <ben...@ou...
> <mailto:ben...@ou...>> wrote:
>
>
> There might be a possible work-around, though. Maybe (and I am
> just speculating here) if we can get the core part of matplotlib
> to specially treat 3d collection objects in such a way that
> allows the collection to return provide elements and z-order
> pairs. It is either that, or we finally try to get OpenGL
> working again in matplotlib and allow ourselves to specify
> coordinates in 3-D.
>
>
> It should be fairly easy to get a collections object to support
> multiple z-orders *within* the collection. Across artists, damn
> near impossible. I don't think you need to provide elements and
> z-order pairs per-se. The typical way a property is specified for a
> collection if you want it to vary over the elements of the
> collection is that the property is a sequence, and the property is
> accessed as prop[i%N] where i is the element number and N is the
> length of the property vector. So if we make zorder a len(elements)
> sequence of z-orders, we can order the collection by the zorder at
> draw time. Presumably external code would modify the zorder of the
> collection before each draw depending on the view.
>
>
>
> Within a collection, this is already done correctly (or at least, as
> well as one can except with a 2D rendering engine). It is when you have
> multiple artists that exists over parts of the z-order "axis" that there
> are problems. Essentially, if the 3-D bounding boxes overlap, then
> trouble ensues.
>
> Also, that speculation I had wouldn't work either, as the problem still
> would exist for intersecting patches. No, what we really need is a 3D
> rendering engine, and a logical separation between z-order for
> sorting/layering and z-coordinates.
>
> Ben Root
>
>
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDirig Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Besuchen Sie uns auf unserem neuen Webauftritt unter www.fz-juelich.de

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 によって変換されたページ (->オリジナル) /