簡體   English   中英

使用R中的直方圖可視化數據

[英]Visualize data using histogram in R

我正在嘗試可視化一些數據,為了做到這一點,我正在使用R的hist

貝婁是我的數據

jancoefabs <- as.numeric(as.vector(abs(Janmodelnorm$coef)))
jancoefabs

[1] 1.165610e+00 1.277929e-01 4.349831e-01 3.602961e-01 7.189458e+00
 [6] 1.856908e-04 1.352052e-05 4.811291e-05 1.055744e-02 2.756525e-04
[11] 2.202706e-01 4.199914e-02 4.684091e-02 8.634340e-01 2.479175e-02
[16] 2.409628e-01 5.459076e-03 9.892580e-03 5.378456e-02

現在,您可能會更狡猾地猜測到這些是某些模型系數的絕對值。

我需要的是軸的直方圖:

x將是系數的總數( countlength ),其總數為19。

y將根據每列的minmax (或類似值)顯示設置為ylim=""的每一列的值(作為breaks ?)。

請注意, Janmodelnorm$coef只會產生以下內容

  (Intercept)           LON           LAT            ME           RAT
 1.165610e+00 -1.277929e-01 -4.349831e-01 -3.602961e-01 -7.189458e+00
           DS           DSA           DSI          DRNS          DREW
-1.856908e-04  1.352052e-05  4.811291e-05 -1.055744e-02 -2.756525e-04
        ASPNS         ASPEW            SI           CUR     W_180_270
-2.202706e-01 -4.199914e-02  4.684091e-02 -8.634340e-01 -2.479175e-02
      W_0_360      W_90_180       W_0_180          NDVI
 2.409628e-01  5.459076e-03 -9.892580e-03 -5.378456e-02

到目前為止, ?hist ,我正在嘗試使用下面的代碼,但沒有成功。 因此,我從頭開始。

# hist(jancoefabs, col="lightblue", border="pink",
     # breaks=8,
     # xlim=c(0,10),  ylim=c(20,-20), plot=TRUE)

設置plot=FALSE ,我會得到一些有關該設置的有用信息。 我也發現很難有效地使用breaks參數。

任何建議將不勝感激。 謝謝。

除了使用hist ,為什么不使用barplot或標准plot 例如,

## Generate some data
set.seed(1)
y = rnorm(19, sd=5)
names(y) = c("Inter", LETTERS[1:18])

然后畫出系數

barplot(y)

或者,您可以使用散點圖

plot(1:19, y, axes=FALSE, ylim=c(-10, 10))
axis(2)
axis(1, 1:19, names(y))

並添加誤差線以指示標准誤差(例如,請參見添加誤差線以在R中的圖上顯示標准偏差 )。

您確定要為此使用直方圖嗎? 格子barchart可能非常不錯。 mtcars內置數據集的示例。

> coef <- lm(mpg ~ ., data = mtcars)$coef
> library(lattice)
> barchart(coef, col = 'lightblue', horizontal = FALSE, 
          ylim = range(coef), xlab = '', 
          scales = list(y = list(labels = coef),
                        x = list(labels = names(coef))))

在此處輸入圖片說明

基本的R dotchart也可能很好,

> dotchart(coef, pch = 19, xlab = 'value')
> text(coef, seq(coef), labels = round(coef, 3), pos = 2)

在此處輸入圖片說明

暫無
暫無

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

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