Re: [matplotlib-devel] Problem with violinplot
Hi Tom, tried to understand the internals of matplotlib during the weekend. Sorry, cound not figure out how matloblib works and where to catch the exceptions. It would be appreciated if someone of the dev group could add the special cases handling. Elmar On 04.07.2015 15:23, Thomas Caswell wrote: Yes, that seems reasonable. @elmar you seem to have a pretty good grasp of the code and the use case, would you mind taking a crack at adding those special cases? Tom On Sat, Jul 4, 2015 at 8:58 AM elmar werling el...@net4werling.de mailto:el...@net4werling.de wrote: having a look at seaborns ViolinPlotter class (https://github.com/mwaskom/seaborn/blob/master/seaborn/categorical.py), they explicit handle the special case of no data and single unique datapoint at line 580 ff. Could something similar be added to matplotlibs violinplot? On 04.07.2015 12:28, elmar werling wrote: from an end user point of view, matplotlibs violinplot should just do the same as seaborns violinplot. # import numpy as np import matplotlib.pyplot as plt import seaborn as sns N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # causing plt.violinplot problem y4 = np.arange(0) # causing plt.violinplot problem #plt.violinplot([y1, y2, y3, y4]) sns.violinplot(data=[y1, y2, y3, y4]) On 03.07.2015 17:52, Thomas Caswell wrote: The KDE computation code is a copy of the KDE code from scipy (https://github.com/scipy/scipy/blob/master/scipy/stats/kde.py), I suggest raising this issue on their mailing list/github. I strongly suspect that violin plot should be doing data sanitation on the way in or catching exceptions like this, but I am not familiar enough with the math to be sure what it should do instead. Tom On Fri, Jul 3, 2015 at 11:41 AM elmar werling el...@net4werling.de mailto:el...@net4werling.de mailto:el...@net4werling.de mailto:el...@net4werling.de wrote: Hi all, violinplot is crashing with singular matrix data. See example. Is this behaviour for a singular matrix intended or just a bug? Cheers Elmar # import numpy as np import matplotlib.pyplot as plt # data mimicing the # original cumsum data (may sum up to 100) N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # data set causing violinplot problem plt.violinplot([y1, y2, y3]) plt.boxplot([y1, y2, y3]) # ok plt.ylim(0,110) # OS: Debian Anaconda 2.3.0 (64-bit) Python 2.7.10 numpy 2.3.0 matplotlib 1.4.3 -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net mailto:Matplotlib-devel@lists.sourceforge.net mailto:Matplotlib-devel@lists.sourceforge.net mailto:Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net mailto:Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Don't Limit Your Business.
Re: [matplotlib-devel] Problem with violinplot
having a look at seaborns ViolinPlotter class (https://github.com/mwaskom/seaborn/blob/master/seaborn/categorical.py), they explicit handle the special case of no data and single unique datapoint at line 580 ff. Could something similar be added to matplotlibs violinplot? On 04.07.2015 12:28, elmar werling wrote: from an end user point of view, matplotlibs violinplot should just do the same as seaborns violinplot. # import numpy as np import matplotlib.pyplot as plt import seaborn as sns N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # causing plt.violinplot problem y4 = np.arange(0) # causing plt.violinplot problem #plt.violinplot([y1, y2, y3, y4]) sns.violinplot(data=[y1, y2, y3, y4]) On 03.07.2015 17:52, Thomas Caswell wrote: The KDE computation code is a copy of the KDE code from scipy (https://github.com/scipy/scipy/blob/master/scipy/stats/kde.py), I suggest raising this issue on their mailing list/github. I strongly suspect that violin plot should be doing data sanitation on the way in or catching exceptions like this, but I am not familiar enough with the math to be sure what it should do instead. Tom On Fri, Jul 3, 2015 at 11:41 AM elmar werling el...@net4werling.de mailto:el...@net4werling.de wrote: Hi all, violinplot is crashing with singular matrix data. See example. Is this behaviour for a singular matrix intended or just a bug? Cheers Elmar # import numpy as np import matplotlib.pyplot as plt # data mimicing the # original cumsum data (may sum up to 100) N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # data set causing violinplot problem plt.violinplot([y1, y2, y3]) plt.boxplot([y1, y2, y3]) # ok plt.ylim(0,110) # OS: Debian Anaconda 2.3.0 (64-bit) Python 2.7.10 numpy 2.3.0 matplotlib 1.4.3 -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net mailto:Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Problem with violinplot
from an end user point of view, matplotlibs violinplot should just do the same as seaborns violinplot. # import numpy as np import matplotlib.pyplot as plt import seaborn as sns N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # causing plt.violinplot problem y4 = np.arange(0) # causing plt.violinplot problem #plt.violinplot([y1, y2, y3, y4]) sns.violinplot(data=[y1, y2, y3, y4]) On 03.07.2015 17:52, Thomas Caswell wrote: The KDE computation code is a copy of the KDE code from scipy (https://github.com/scipy/scipy/blob/master/scipy/stats/kde.py), I suggest raising this issue on their mailing list/github. I strongly suspect that violin plot should be doing data sanitation on the way in or catching exceptions like this, but I am not familiar enough with the math to be sure what it should do instead. Tom On Fri, Jul 3, 2015 at 11:41 AM elmar werling el...@net4werling.de mailto:el...@net4werling.de wrote: Hi all, violinplot is crashing with singular matrix data. See example. Is this behaviour for a singular matrix intended or just a bug? Cheers Elmar # import numpy as np import matplotlib.pyplot as plt # data mimicing the # original cumsum data (may sum up to 100) N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # data set causing violinplot problem plt.violinplot([y1, y2, y3]) plt.boxplot([y1, y2, y3]) # ok plt.ylim(0,110) # OS: Debian Anaconda 2.3.0 (64-bit) Python 2.7.10 numpy 2.3.0 matplotlib 1.4.3 -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net mailto:Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
[matplotlib-devel] Problem with violinplot
Hi all, violinplot is crashing with singular matrix data. See example. Is this behaviour for a singular matrix intended or just a bug? Cheers Elmar # import numpy as np import matplotlib.pyplot as plt # data mimicing the # original cumsum data (may sum up to 100) N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # data set causing violinplot problem plt.violinplot([y1, y2, y3]) plt.boxplot([y1, y2, y3]) # ok plt.ylim(0,110) # OS: Debian Anaconda 2.3.0 (64-bit) Python 2.7.10 numpy 2.3.0 matplotlib 1.4.3 -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Problem with violinplot
The KDE computation code is a copy of the KDE code from scipy ( https://github.com/scipy/scipy/blob/master/scipy/stats/kde.py), I suggest raising this issue on their mailing list/github. I strongly suspect that violin plot should be doing data sanitation on the way in or catching exceptions like this, but I am not familiar enough with the math to be sure what it should do instead. Tom On Fri, Jul 3, 2015 at 11:41 AM elmar werling el...@net4werling.de wrote: Hi all, violinplot is crashing with singular matrix data. See example. Is this behaviour for a singular matrix intended or just a bug? Cheers Elmar # import numpy as np import matplotlib.pyplot as plt # data mimicing the # original cumsum data (may sum up to 100) N = 100 y1 = np.random.randn(N) + 3.0 y2 = np.random.randn(N) * 5.0 + 50 y3 = np.ones(N) * 100 # data set causing violinplot problem plt.violinplot([y1, y2, y3]) plt.boxplot([y1, y2, y3]) # ok plt.ylim(0,110) # OS: Debian Anaconda 2.3.0 (64-bit) Python 2.7.10 numpy 2.3.0 matplotlib 1.4.3 -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel