當前位置:首頁 » 編程語言 » 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: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
c語言table 發布:2025-01-19 09:27:50 瀏覽:953
java8gc 發布:2025-01-19 09:03:30 瀏覽:648
mac個人收藏添加文件夾 發布:2025-01-19 08:55:12 瀏覽:531
股票編程書籍 發布:2025-01-19 08:55:01 瀏覽:120