2015-05-31 30 views
11

Đây là mục tiêu của tôi: Vẽ tần số y theo x trong trục z.Cách tạo biểu đồ 3D trong R

Đây là những vấn đề của tôi: Tôi có một mảng hai cột (xy) và cần phải chia x vào lớp (p.ex. 0,2 ou 0.5) và tính toán tần số y cho từng loại x. Cốt truyện sẽ xuất hiện như một âm mưu x-y trong kế hoạch "mặt đất" và tần số trong trục z. Nó có thể giống như một bề mặt hoặc một biểu đồ 3D. Tôi đã cố gắng sử dụng chức năng hist3D của gói plot3D nhưng tôi không biết mình đang làm gì sai.

Đây là một ví dụ về những gì tôi đang cố gắng để làm:

https://www.safaribooksonline.com/library/view/r-data-visualization/9781783989508/ch06s05.html

Cảm ơn !!

+4

Những màu sắc trong ví dụ đó được phản ánh trong chiều cao và là không cần thiết. Bạn có thể tạo bản đồ nhiệt màu 2d + và cung cấp thông tin tương tự, không che khuất dữ liệu đằng sau các thanh cao. – thelatemail

+0

@thelatemail, cảm ơn mẹo. Tôi sẽ thử bản đồ nhiệt. –

Trả lời

17

Sử dụng một số dữ liệu mô phỏng, điều này sẽ giúp bạn có được những gì bạn muốn. Điều quan trọng là bạn phải tạo các thùng kép của bạn, hoàn thành bằng cách sử dụng chức năng cut(). Sau đó, điều trị các yếu tố binned như mức độ sau đó chúng ta có thể đếm các kết hợp của mỗi cấp yếu tố sử dụng table() chức năng như dưới đây:

library(plot3D) 

## Simulate data: 
set.seed(2002) 
x <- rnorm(1000) 
y <- rnorm(1000) 

## Create cuts: 
x_c <- cut(x, 20) 
y_c <- cut(y, 20) 

## Calculate joint counts at cut levels: 
z <- table(x_c, y_c) 

## Plot as a 3D histogram: 
hist3D(z=z, border="black") 

## Plot as a 2D heatmap: 
image2D(z=z, border="black") 

3D2D

+0

Cảm ơn, người đàn ông. Tôi đã sử dụng mã của bạn trong dữ liệu có thể và nó hoạt động khá tốt, nhưng như @thelatemail đã nói, có lẽ một bản đồ nhiệt là lựa chọn tốt nhất. –

+1

Trong trường hợp này, tôi chắc chắn sẽ đồng ý. :) Tôi đã chỉnh sửa câu trả lời của mình cho tài liệu dưới dạng tùy chọn: –

+0

@Forrens R. Stevens, cách này trông đẹp hơn nhiều! Phân tích các ô mới Tôi đang nghĩ về điều gì đó khác biệt một chút, có thể bạn cũng có thể giúp tôi với điều này: Tôi muốn tạo một âm mưu khác bằng cách sử dụng "biểu đồ độc lập" cho mỗi lớp 'x' được vẽ cùng nhau. Chỉ cần để làm cho nó rõ ràng: somatory của mỗi cột trong exemple của bạn nên được 1. Trong trường hợp này, sẽ không có giá trị siêu cao trong quy mô, nhưng một bản đồ nhiệt mịn hơn thay đổi từ 0 đến 1. –

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