From: elmar w. <el...@ne...> - 2015-07-04 12:58:08
|
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...@ne... >> <mailto:el...@ne...>> 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 >> Mat...@li... >> <mailto:Mat...@li...> >> 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 >> Mat...@li... >> 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/ > |