当前位置:首页 » 编程语言 » ggplotpython

ggplotpython

发布时间: 2022-04-06 22:44:42

❶ 什么是R/python语言

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
Python的设计理念是“简单”、“明确”、“优雅”。
Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。
像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。 对比Java 读取文件 在 Java中需要10行代码 Python只需要两行.
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

❷ 如何用Python做舆情时间序列可视化

如何批量处理评论信息情感分析,并且在时间轴上可视化呈现?舆情分析并不难,让我们用Python来实现它吧。
痛点
你是一家连锁火锅店的区域经理,很注重顾客对餐厅的评价。从前,你苦恼的是顾客不爱写评价。最近因为餐厅火了,分店越来越多,写评论的顾客也多了起来,于是你新的痛苦来了——评论太多了,读不过来。
从我这儿,你了解到了情感分析这个好用的自动化工具,一下子觉得见到了曙光。
你从某知名点评网站上,找到了自己一家分店的页面,让助手把上面的评论和发布时间数据弄下来。因为助手不会用爬虫,所以只能把评论从网页上一条条复制粘贴到Excel里。下班的时候,才弄下来27条。(注意这里我们使用的是真实评论数据。为了避免对被评论商家造成困扰,统一将该餐厅的名称替换为“A餐厅”。特此说明。)

好在你只是想做个试验而已,将就了吧。你用我之前介绍的中文信息情感分析工具,依次得出了每一条评论的情感数值。刚开始做出结果的时候,你很兴奋,觉得自己找到了舆情分析的终极利器。
可是美好的时光总是短暂的。很快你就发现,如果每一条评论都分别运行一次程序,用机器来做分析,还真是不如自己挨条去读省事儿。
怎么办呢?
序列
办法自然是有的。我们可以利用《贷还是不贷:如何用Python和机器学习帮你决策?》一文介绍过的数据框,一次性处理多个数据,提升效率。
但是这还不够,我们还可以把情感分析的结果在时间序列上可视化出来。这样你一眼就可以看见趋势——近一段时间里,大家是对餐厅究竟是更满意了,还是越来越不满意呢?
我们人类最擅长处理的,就是图像。因为漫长的进化史逼迫我们不断提升对图像快速准确的处理能力,否则就会被环境淘汰掉。因此才会有“一幅图胜过千言万语”的说法。

准备
首先,你需要安装Anaconda套装。详细的流程步骤请参考《 如何用Python做词云 》一文。
助手好不容易做好的Excel文件restaurant-comments.xlsx,请从这里下载。
用Excel打开,如果一切正常,请将该文件移动到咱们的工作目录demo下。

因为本例中我们需要对中文评论作分析,因此使用的软件包为SnowNLP。情感分析的基本应用方法,请参考《如何用Python做情感分析?》。
到你的系统“终端”(macOS, Linux)或者“命令提示符”(Windows)下,进入我们的工作目录demo,执行以下命令。
pip install snownlp
pip install ggplot

运行环境配置完毕。
在终端或者命令提示符下键入:
jupyter notebook

如果Jupyter Notebook正确运行,下面我们就可以开始编写代码了。
代码
我们在Jupyter Notebook中新建一个Python 2笔记本,起名为time-series。

首先我们引入数据框分析工具Pandas,简写成pd以方便调用。
import pandas as pd

接着,读入Excel数据文件:
df = pd.read_excel("restaurant-comments.xlsx")

我们看看读入内容是否完整:
df.head()

结果如下:

注意这里的时间列。如果你的Excel文件里的时间格式跟此处一样,包含了日期和时间,那么Pandas会非常智能地帮你把它识别为时间格式,接着往下做就可以了。
反之,如果你获取到的时间只精确到日期,例如"2017-04-20"这样,那么Pandas只会把它当做字符串,后面的时间序列分析无法使用字符串数据。解决办法是在这里加入以下两行代码:
from dateutil import parser
df["date"] = df.date.apply(parser.parse)

这样,你就获得了正确的时间数据了。
确认数据完整无误后,我们要进行情感分析了。先用第一行的评论内容做个小实验。
text = df.comments.iloc[0]

然后我们调用SnowNLP情感分析工具。
from snownlp import SnowNLP
s = SnowNLP(text)

显示一下SnowNLP的分析结果:
s.sentiments

结果为:
0.6331975099099649

情感分析数值可以正确计算。在此基础上,我们需要定义函数,以便批量处理所有的评论信息。
def get_sentiment_cn(text):
s = SnowNLP(text) return s.sentiments

然后,我们利用Python里面强大的apply语句,来一次性处理所有评论,并且将生成的情感数值在数据框里面单独存为一列,称为sentiment。
df["sentiment"] = df.comments.apply(get_sentiment_cn)

我们看看情感分析结果:
df.head()

新的列sentiment已经生成。我们之前介绍过,SnowNLP的结果取值范围在0到1之间,代表了情感分析结果为正面的可能性。通过观察前几条数据,我们发现点评网站上,顾客对这家分店评价总体上还是正面的,而且有的评论是非常积极的。
但是少量数据的观察,可能造成我们结论的偏颇。我们来把所有的情感分析结果数值做一下平均。使用mean()函数即可。
df.sentiment.mean()

结果为:
0.7114015318571119

结果数值超过0.7,整体上顾客对这家店的态度是正面的。
我们再来看看中位数值,使用的函数为median()。
df.sentiment.median()

结果为:
0.9563139038622388

我们发现了有趣的现象——中位数值不仅比平均值高,而且几乎接近1(完全正面)。
这就意味着,大部分的评价一边倒表示非常满意。但是存在着少部分异常点,显着拉低了平均值。
下面我们用情感的时间序列可视化功能,直观查看这些异常点出现在什么时间,以及它们的数值究竟有多低。
我们需要使用ggplot绘图工具包。这个工具包原本只在R语言中提供,让其他数据分析工具的用户羡慕得流口水。幸好,后来它很快被移植到了Python平台。
我们从ggplot中引入绘图函数,并且让Jupyter Notebook可以直接显示图像。
%pylab inlinefrom ggplot import *

这里可能会报一些警告信息。没有关系,不理会就是了。
下面我们绘制图形。这里你可以输入下面这一行语句。
ggplot(aes(x="date", y="sentiment"), data=df) + geom_point() + geom_line(color = 'blue') + scale_x_date(labels = date_format("%Y-%m-%d"))

你可以看到ggplot的绘图语法是多么简洁和人性化。只需要告诉Python自己打算用哪个数据框,从中选择哪列作为横轴,哪列作为纵轴,先画点,后连线,并且可以指定连线的颜色。然后,你需要让X轴上的日期以何种格式显示出来。所有的参数设定跟自然语言很相似,直观而且易于理解。
执行后,就可以看到结果图形了。

在图中,我们发现许多正面评价情感分析数值极端的高。同时,我们也清晰地发现了那几个数值极低的点。对应评论的情感分析数值接近于0。这几条评论,被Python判定为基本上没有正面情感了。
从时间上看,最近一段时间,几乎每隔几天就会出现一次比较严重的负面评价。
作为经理,你可能如坐针毡。希望尽快了解发生了什么事儿。你不用在数据框或者Excel文件里面一条条翻找情感数值最低的评论。Python数据框Pandas为你提供了非常好的排序功能。假设你希望找到所有评论里情感分析数值最低的那条,可以这样执行:
df.sort(['sentiment'])[:1]

结果为:

情感分析结果数值几乎就是0啊!不过这里数据框显示评论信息不完全。我们需要将评论整体打印出来。
print(df.sort(['sentiment']).iloc[0].comments)

评论完整信息如下:
这次是在情人节当天过去的,以前从来没在情人节正日子出来过,不是因为没有男朋友,而是感觉哪哪人都多,所以特意错开,这次实在是馋A餐厅了,所以赶在正日子也出来了,从下午四点多的时候我看排号就排到一百多了,我从家开车过去得堵的话一个小时,我一看提前两个小时就在网上先排着号了,差不多我们是六点半到的,到那的时候我看号码前面还有才三十多号,我想着肯定没问题了,等一会就能吃上的,没想到悲剧了,就从我们到那坐到等位区开始,大约是十分二十分一叫号,中途多次我都想走了,哈哈,哎,等到最后早上九点才吃上的,服务员感觉也没以前清闲时周到了,不过这肯定的,一人负责好几桌,今天节日这么多人,肯定是很累的,所以大多也都是我自己跑腿,没让服务员给弄太多,就虾滑让服务员下的,然后环境来说感觉卫生方面是不错,就是有些太吵了,味道还是一如既往的那个味道,不过A餐厅最人性化的就是看我们等了两个多小时,上来送了我们一张打折卡,而且当次就可以使用,这点感觉还是挺好的,不愧是A餐厅,就是比一般的要人性化,不过这次就是选错日子了,以后还是得提前预约,要不就别赶节日去,太火爆了!
通过阅读,你可以发现这位顾客确实有了一次比较糟糕的体验——等候的时间太长了,以至于使用了“悲剧”一词;另外还提及服务不够周到,以及环境吵闹等因素。正是这些词汇的出现,使得分析结果数值非常低。
好在顾客很通情达理,而且对该分店的人性化做法给予了正面的评价。
从这个例子,你可以看出,虽然情感分析可以帮你自动化处理很多内容,然而你不能完全依赖它。
自然语言的分析,不仅要看表达强烈情感的关键词,也需要考虑到表述方式和上下文等诸多因素。这些内容,是现在自然语言处理领域的研究前沿。我们期待着早日应用到科学家们的研究成果,提升情感分析的准确度。
不过,即便目前的情感分析自动化处理不能达到非常准确,却依然可以帮助你快速定位到那些可能有问题的异常点(anomalies)。从效率上,比人工处理要高出许多。
你读完这条评论,长出了一口气。总结了经验教训后,你决定将人性化的服务贯彻到底。你又想到,可以收集用户等候时长数据,用数据分析为等待就餐的顾客提供更为合理的等待时长预期。这样就可以避免顾客一直等到很晚了。
祝贺你,经理!在数据智能时代,你已经走在了正确的方向上。
下面,你该认真阅读下一条负面评论了……

❸ 如何利用ggplot2画柱状图

在这里提了一个自问自答的问题来推广一种十分优雅的数据可视化工具,R的ggplot2包。其实我自己现在主要在使用Python和Pandas和Numpy工作,ggplot2应该是我留守在R里面最大的理由之一~

在介绍ggplot2之前,我首先来介绍一下作者Hadley Wickham。Hadley (Rice University Department of Statistics : Faculty)
从统计学名校Iowa State University拿到了自己的Ph. D,其博士论文Practical tools for
exploring data and models 就是关于数据可视化和探索性数据分析的,现任Rice University的Adjunct
Assistant Professor 和R的着名IDE
RStudio的首席科学家。Hadley在R语言用户中具有极高的声望。R的基础版本其实是不太好用的,但是Hadley的一系列优秀作品极大地改进了
R语言。今年五月在北京召开的R语言会议,好多人都争相和Hadley合影,可见Hadley的魅力与声望非同一般。Hadley开发一个package
的时候会先开发一个版本,如果他觉得不够好又升级了,就会发一个新版本,名字变成旧名字后面加上数字2。所以我们就有了reshape2和
ggplot2。

ggplot2基于Leland Wilkinson在Grammar of Graphics(图形的语法)中提出的理论,取首字母缩写再加上plot,于是得名ggplot。按照《图形的语法》一书中的观点,一张统计图形就是从数据到点、线或方块等几何对象的颜色、形状或大小等图形属性的一个映射,其中还可能包含对数据进行统计变换(如求均值或方差),最后将这个映射绘制在一定的坐标系中就得到了我们需要的图形。图中可能还有分面,
就是生成关于数据的不同子集的图形。使用ggplot2绘图的过程就是选择合适的几何对象、图形属性和统计变换来充分暴露数据中所含有的信息的过程。
ggplot2需要一定的时间去入门学习,但是当你掌握了ggplot2中图形的语法的时候,我相信你会感受到这套语法的优雅。

在接下来的部分,我假定读者已经对R语言有了基本的了解,我将不会介绍DataFrame等基本概念。

安装ggplot2和安装其他的R包没有差别,在R的console里面运行install.packages("ggplot2") 一句就可以了,如果你使用RStudio,也可以在Package列表那里用鼠标去安装。

先来介绍一些ggplot2中的基本概念,括号里面对应的是ggplot2中为这种属性赋值的时候需要使用的参数名
图形属性(aes) 横纵坐标、点的大小、颜色,填充色等
几何对象(geom_) 上面指定的图形属性需要呈现在一定的几何对象上才能被我们看到,这些承载图形属性的对象可能是点,可能是线,可能是bar
统计变换 (stat_) 比如求均值,求方差等,当我们需要展示出某个变量的某种统计特征的时候,需要用到统计变换

❹ python怎么安装ggplot

有以下几点:

  1. ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无关的绘图分离

  2. ggplot2是按图层作图

  3. ggplot2保有命令式作图的调整函数,使其更具灵活性

  4. ggplot2将常见的统计变换融入到了绘图中。

❺ 如何做到R和python的完美配合

python是一门标准化的编程语言,结构比较规范,但是很多时候代码写起来不如R简便。因此,在python中用rpy2包(接口)调用R代码不失为一种两全其美的办法。此外,python中直接装个ggplot的第三方模块来代替matplotlib来画图,可以有效提高工作效率的。

❻ 导入ggplot时候无法导入userdict

Python | ggplot安装(含numpy、scipy安装)
http://jingyan..com/article/adc815137d9ce4f723bf73f9.html

❼ 针对绘图方面的需求,matlab,python和R哪个更加强大

ggplot2确实很强,使用的图形语法理论很有趣,一致性高。但是每个R包设计理念差太多了,万一遇到ggplot2不容易搞定的图(比如双y轴),再用其他的包,学起来很花时间
另外,R的图导出打印或直接在电脑上看总感觉怪怪的,默认色彩和曲线平滑度上比其他两个差
matlab和python的matplotlib基础作图都比较简单,语法也很像,出来的图效果就很好,但是在基础图上的修改,不如ggplot2成体系、知道怎么去找,而且matplotlib的图形再修改感觉比matlab好一点。貌似ggplot2也要有python版了
其他复杂图、奇怪图,这方面R和Python大量的包就有优势了,matlab毕竟不是免费开源,作图的包就mathworks提供,相对来说差一点

热点内容
安卓鸿蒙苹果哪个好用 发布:2025-01-19 10:32:33 浏览:264
正规物业保安怎么配置 发布:2025-01-19 10:27:30 浏览:518
断裂下载ftp 发布:2025-01-19 10:27:30 浏览:641
安卓导航怎么调对比度 发布:2025-01-19 10:26:52 浏览:25
服务器共享文件如何查看访问记录 发布:2025-01-19 10:08:55 浏览:400
datasourceSQL 发布:2025-01-19 10:01:25 浏览:838
aspnet网站的编译 发布:2025-01-19 10:00:49 浏览:334
路特仕A9工厂密码是多少 发布:2025-01-19 09:59:44 浏览:257
linux的命令find 发布:2025-01-19 09:42:55 浏览:174
简单的计算机编程 发布:2025-01-19 09:39:54 浏览:520