簡體   English   中英

如何使用R corrplot函數從Excel繪制數據?

[英]How to plot data from Excel using the R corrplot function?

我正在嘗試學習R,並使用corrplot庫繪制Y:CityX: Population圖。 我寫了下面的代碼:

在此處輸入圖片說明

當您查看上面的圖片時,有2列城市和人口。 當我運行代碼時,出現以下錯誤消息:

Error in cor(Illere_Gore_Nufus) : 'x' must be numeric.

我的excel數據:

在此處輸入圖片說明

通常,只有當您有兩個連續變量時,才可以繪制相關圖(散點圖)。 相關性是一個值,它告訴您兩個連續變量如何線性相關。 相關值將始終介於-1和1之間,其中相關值-1表示兩個變量之間的線性關系較弱,相關值1表示兩個變量之間的強線性關系。 相關值0表示兩個變量之間沒有線性關系,但是,兩個變量之間可能存在曲線線性關系

例如土地面積vs土地價格這是數據

該數據的相關值為0.896,這意味着土地面積和土地價格之間存在很強的線性關系(很明顯!)。

R中的散點圖看起來像這樣

R代碼將是

area<-c(650,785,880,990,1100,1250,1350,1800,2200,2800)
price<-c(250,275,280,290,350,340,400,335,420,460)
cor(area,price)
plot(area,price)

在Excel中,對於同樣的例子,您可以選擇兩列,請選擇插入>散點圖(下圖部分) 散點圖

在您的情況下,信息可以用條形圖繪制,y軸代表城市,x軸代表人口,反之亦然!

希望我回答了您的疑問!

一些假設

您正在問如何在Excel中執行此操作,但是您的問題被標記為R和Power BI(也是RStudio,但已被刪除),因此,我將向您展示如何使用R和Power BI進行此操作。 我還將向您展示為什么會收到該錯誤消息,以及為什么會以兩種方式都收到錯誤消息,因為您的數據集不足以繪制相關圖。


我的答案

我假設您想對表格中各城市之間的人口作一個相關圖。 在該表中,每個城市需要的信息不僅僅需要一年。 我將檢查您的數據源,看看是否可以得出最近10年的人口數字。 由於您的表中沒有城市的確切數字,我將使用一些半偽數字來計算10個人口最多的國家/地區的人口(根據您的數據結構):

Country         2017        2016        2015        2014        2013
China           1415045928  1412626453  1414944844  1411445597  1409517397
India           1354051854  1340371473  1339431384  1343418009  1339180127
United States   326766748   324472802   325279622   324521777   324459463
Indonesia       266794980   266244787   266591965   265394107   263991379
Brazil          210867954   210335253   209297939   209860881   209288278
Pakistan        200813818   199761249   200253292   197655630   197015955
Nigeria         195875237   192568158   195757661   191728478   190886311
Bangladesh      166368149   165630262   165936711   166124290   164669751
Russia          143964709   143658415   143146914   143341653   142989754
Mexcio          137590740   137486490   136768870   137177870   136590740

在Power BI中編寫和調試R代碼確實很痛苦,所以我建議您安裝R studio,在其中編寫您的小R代碼片段,然后將其粘貼到Power B中。

出現錯誤消息的原因是函數cor()僅將數值數據作為參數。 在您的代碼示例中,城市名稱作為參數給出。 在您的代碼示例中還有更多潛在的陷阱。 您必須確保數據集是數字的。 而且,您必須確保數據集具有cor()可以接受的形狀。

下面是一個R腳本,將執行此操作。 復制上面的數據,並將其存儲在C驅動器上名為data.xlsx的文件中。

編碼

library(corrplot)
library(readxl)

# Read data
setwd("C:/")
data <- read_excel("data.xlsx")

# Set Country names as row index
rownames(data) <- data$Country

# Remove Country from dataframe
data$Country <- NULL

# Transpose data into a readable format for cor()
data <- data.frame(t(data))

# Plot data
corrplot(cor(data))

劇情

CorrPlot

Power BI

在Power BI中,需要先導入數據,然后才能在R visual中使用它們:

復制此:

Country,2017,2016,2015,2014,2013
China,1415045928,1412626453,1414944844,1411445597,1409517397
India,1354051854,1340371473,1339431384,1343418009,1339180127
United States,326766748,324472802,325279622,324521777,324459463
Indonesia,266794980,266244787,266591965,265394107,263991379
Brazil,210867954,210335253,209297939,209860881,209288278
Pakistan,200813818,199761249,200253292,197655630,197015955
Nigeria,195875237,192568158,195757661,191728478,190886311
Bangladesh,166368149,165630262,165936711,166124290,164669751
Russia,143964709,143658415,143146914,143341653,142989754
Mexcio,137590740,137486490,136768870,137177870,136590740

將其保存為countries.csv您所選擇的文件夾中,並用獲取數據把它撿起來在雙向電力| 文/ CSV,單擊編輯對話框,並在電源查詢編輯器 ,單擊使用第一列作為標題 ,讓你在你的力量查詢編輯器有這個表:

在此處輸入圖片說明

單擊“ 關閉並應用” ,並確保在“ 可視化” |可視化”下有可用數據 領域

在此處輸入圖片說明

單擊可視化下的R:

在此處輸入圖片說明

選擇FIELDS |下的所有列 國家/地區,以便您進行以下設置:

在此處輸入圖片說明

采取我們上面准備的部分 R代碼片段

library(corrplot)

# Set Country names as row index
data <- dataset

rownames(data) <- data$Country

# Remove Country from dataframe
data$Country <- NULL

# Transpose data into a readable format for cor()
data <- data.frame(t(data))

# Plot data
corrplot(cor(data))

並將其粘貼到Power BI R腳本編輯器中

在此處輸入圖片說明

單擊運行R腳本

在此處輸入圖片說明

你會得到這個:

在此處輸入圖片說明

而已!

如果將過程更改為從Excel文件而不是文本文件導入數據(使用Get Data | Excel ,則說明您已成功組合Excel,Power BI和R的功能以生成散點圖!

希望這就是您想要的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM