2011-09-28 35 views
13

Tôi đang cố gắng tạo một đường viền đơn giản nhưng tôi gặp sự cố rằng tôi đã sao chép tên trên trục x. Vì vậy, khi bao giờ tôi cố gắng để viết tên trên trục x nó không hiển thị chuỗi hoàn chỉnh. Tôi đã theo dữ liệuLàm thế nào để viết nhãn trong thanh trên trục x với tên trùng lặp?

x <- c(1.8405917,0.3265986,1.5723623,464.7370299,0.0000000,3.2235716, 
     3.1223534, 7.0999787, 1.7122258,3.2005524,3.7531266,469.4436828) 

và tôi đang sử dụng barplot

barplot(x,xlab=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC","CC/AC", 
       "CC/NC","AC/AA","AC/CC","AC/AC","AC/NC")) 

Nhưng nó không hoạt động. Tôi cũng đã sử dụng

axis() 

Nhưng nó cũng không hoạt động.

Xin cảm ơn trước.

+0

Bạn có nhận được bất kỳ thông báo lỗi? –

Trả lời

20

Không, xlab là để cung cấp nhãn cho toàn bộ trục x của ô, không phải để gắn nhãn cho các thanh riêng lẻ.

barplot() lấy nhãn cho các thanh từ tên của vectơ được vẽ (hoặc thứ gì đó có thể được bắt nguồn vào một bộ tên).

> names(x) <- c("AA/AA", "AA/CC", "AA/AC", "AA/NC", "CC/AA", "CC/CC", "CC/AC", 
+    "CC/NC", "AC/AA", "AC/CC", "AC/AC", "AC/NC") 
> barplot(x) 
> ## or with labels rotated, see ?par 
> barplot(x, las = 2) 

Edit: Như @Aaron đề cập, barplot() cũng có một names.arg để cung cấp nhãn cho các quán bar. Đây là những gì ?barplot đã nói:

names.arg: một vector của tên này có thể vẽ bên dưới mỗi thanh hoặc nhóm quán bar. Nếu đối số này bị bỏ qua, thì tên được lấy từ thuộc tính names của height nếu đây là một vector, hoặc tên cột nếu đó là ma trận.

Điều này giải thích hành vi mặc định nếu names.arg không được cung cấp - để lấy tên từ đối tượng được vẽ. Cách sử dụng nào hữu ích nhất cho bạn chủ yếu sẽ là vấn đề về hương vị. Không có hàng/cột/tên có thể tăng tốc mã, nhưng nhiều chức năng của R sẽ lấy thuộc tính names (hoặc tương tự, ví dụ như tên hàng) trực tiếp từ các đối tượng, do đó bạn không phải tiếp tục cung cấp nhãn để vẽ/ghi nhãn các kết quả, vv ..

+0

+1 Câu trả lời hoàn chỉnh hay. – Aaron

10

xlab phải là names.arg. Xem ?barplot để biết chi tiết.

+0

+1 để ghi chú đối số 'names.arg'. –

2

Cách sử dụng axis() là để nắm bắt các điểm giữa, đó là chức năng của hàm barplot. Xem ?barplot:

mids <- barplot(x, xlab="") 

axis(1, at=mids, labels=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC", 
          "CC/AC","CC/NC","AC/AA","AC/CC","AC/AC","AC/NC"), 
     las=3) 
3

Hãy thử điều này:

barplot(x, cex.names=0.7, 
     names.arg=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC","CC/AC", 
        "CC/NC","AC/AA","AC/CC","AC/AC","AC/NC")) 
Các vấn đề liên quan