2012-01-31 56 views
7

Kể từ hist() của cơ sở R không báo cáo tỷ lệ phần trăm (và freq = FALSE) không giúp được, tôi đã chuyển sang lattice.Biểu đồ trên mạng

histogram(rnorm(10000)) 

Xin hãy giúp tôi với những điều sau:

  1. Làm thế nào tôi có thể thoát khỏi hộp arround cốt truyện?
  2. Làm thế nào tôi có thể xác định một cách riêng biệt cex của nhãn x/y và trục x/y?
  3. Tôi làm cách nào để cung cấp tên tùy chỉnh cho trục x và trục y?
+0

Bạn có thể xây dựng trên những gì rắc rối của bạn với 'hist' là, chỉ vì tò mò? Khi tôi chỉ định 'freq = FALSE', tôi nhận được biểu đồ mật độ (tức là phần trăm). – joran

+1

Xin chào @joran. Để xem vấn đề ECII có thể đề cập đến, hãy thử 'hist (runif (1000), freq = FALSE, col = gray (.6))'. Trục y ghi chú chính xác mật độ xác suất, nhưng khối lượng xác suất với mỗi thanh (sản phẩm có mật độ gấp chiều rộng), phải bằng khoảng một phần mười mật độ, vì có 10 thanh ... Vì vậy, tôi * nghĩ * ECII đang yêu cầu các dấu trục chỉ số phần trăm của các quan sát nằm trong mỗi thanh. –

Trả lời

6

Điều này sẽ giúp bạn bắt đầu:

library(lattice) 
histogram(rnorm(10000),  
    main=list(
     label="Main plot title", 
     cex=1.5), 
    xlab=list(
     label="Custom x-axis label", 
     cex=0.75), 
    ylab=list(
     label="My very own y-axis label", 
     cex=1.2), 
    scales=list(cex=0.5), 
    par.settings = list(axis.line = list(col = 0)) 
) 

enter image description here

7

Hoặc, nếu bạn muốn gắn bó với hist(), bạn có thể sửa đổi nó một chút, như hình dưới đây.

Chức năng này gọi hist() một lần để nhận giá trị trả về, là một đối tượng có chứa tất cả các loại thông tin hữu ích về cấu trúc của biểu đồ. Sau đó nó sử dụng (a) chiều rộng của các thùng và (b) mật độ cho mỗi thanh để tính (c) phần trăm các quan sát rơi vào mỗi thanh.

histPercent <- function(x, ...) { 
    H <- hist(x, plot = FALSE) 
    H$density <- with(H, 100 * density* diff(breaks)[1]) 
    plot(H, freq = FALSE, ...) 
} 

histPercent(rnorm(10000), col="dodgerblue", las=1, 
      xlab="Echs-axis", ylab="Why-axis") 

enter image description here

+0

Tuyệt vời. Tôi nghĩ rằng nó sẽ không thể với cơ sở. Tuy nhiên tôi phải đưa nó cho Andrie kể từ khi câu hỏi được chỉ định mạng. Cảm ơn nhiều. – ECII

+1

+1 cho col = "dodgerblue" :-) – ECII

+0

Tôi cũng thích nhãn trục. –

Các vấn đề liên quan