关于python中ggplot包出现 ‘DataFrame‘ object has no attribute ‘sort‘问题的解决方法

关于python中ggplot包出现 ‘DataFrame’ object has no attribute 'sort’问题的解决方法

最近发现python中也有ggplot包与R语言上的ggplot2库中的函数大体上一样,只有少数没有在python上实现,类似于coord_flip() 函数可以将柱状图变为水平放置的,在python中就没有办法实现。但是,大多数是可以使用的,这也大大方便了数据处理后的可视化操作。
在使用中还发现了一个问题,就是这样的:

ggplot(aes(x='factor(cyl)', fill='factor(vs)'), data=mtcars) + geom_bar(position = 'stack', stat = 'identity') 

出现 ‘DataFrame’ object has no attribute ‘sort’的问题。感觉是因为fill参数有排序的过程,而pandas在0.20以上的版本就没有sort函数了,而是用的sort_values和sort_index函数了。所以,在此处要出错!
给出以下三种方式:

第一、在E:/Anaconda3/Lib/site-packages/ggplot/stats/stat_smooth.py(当然这应该是ggplot包的位置)下改变77行:
smoothed_data = smoothed_data.sort(‘x’)
改变为: smoothed_data = smoothed_data.sort_values(‘x’)

第二、在E:/Anaconda3/Lib/site-packages/ggplot/ggplot.py下改变602行:
fill_levels = self.data[[fillcol_raw, fillcol]].sort(=fillcol_raw)[fillcol].unique()
改变为:fill_levels = self.data[[fillcol_raw, fillcol]].sort_values(by=fillcol_raw)[fillcol].unique()

第三、如果前两种方式都不行的话,那我们还是将pandas的版本换为0.19.2版本的就行了。

ggplot(aes(x='factor(cyl)', fill='factor(vs)'), data=mtcars) + geom_bar(position = 'stack', stat = 'identity')

关于python中ggplot包出现 ‘DataFrame‘ object has no attribute ‘sort‘问题的解决方法_第1张图片

原文链接:https://blog.csdn.net/llh_1178/article/details/79853850

你可能感兴趣的:(关于python中ggplot包出现 ‘DataFrame‘ object has no attribute ‘sort‘问题的解决方法)