Exploratory Data Analysis: Thiết bị đồ họa trong R

PDF format

PDF format


Trong bài viết này, ta sẽ làm quen với các thiết bị đồ họa trong R. Các thiết bị đồ họa là gì? Đó là nơi để bạn có thể xuất biểu đồ của mình ra các thiết bị như màn hình, file ảnh (PNG, JPEG, SVG, TIFF) hay file văn bản (PDF). Cụ thể, khi ta xuất biểu đồ, R sẽ gửi thông tin hiển thị biểu đồ đến thiết bị đồ họa. Thông thường, ta sẽ xuất ra thiết bị màn hình (đây là thiết bị mặc định). Ta xuất biểu đồ ra file khi muốn viết báo cáo, thuyết trình, hay gửi thông tin cho các đồng nghiệp của mình.

Việc truy xuất lên thiết bị màn hình tùy thuộc vào hệ điều hành mà bạn đang sử dụng. Nếu bạn đang dùng Mac OS thì hàm gọi sẽ là quartz(), trên Windows thì hàm gọi sẽ là windows(), và trên Unix/Linux sẽ là x11(). Điều này có nghĩa là bạn không thể dùng hàm windows() trên Mac OS.

Để biết danh sách các thiết bị đồ họa được hỗ trợ trên hệ thống của mình ta dùng lệnh ?Devices

?Devices
The following graphics devices are currently available:

        • ‘pdf’ Write PDF graphics commands to a file

        • ‘postscript’ Writes PostScript graphics commands to a file

        • ‘xfig’ Device for XFIG graphics file format

        • ‘bitmap’ bitmap pseudo-device via ‘Ghostscript’ (if
          available).

        • ‘pictex’ Writes TeX/PicTeX graphics commands to a file (of
          historical interest only)

The following devices will be functional if R was compiled to use
them (they exist but will return with a warning on other systems):

        • ‘X11’ The graphics device for the X11 windowing system

        • ‘cairo_pdf’, ‘cairo_ps’ PDF and PostScript devices based on
          cairo graphics.

        • ‘svg’ SVG device based on cairo graphics.

        • ‘png’ PNG bitmap device

        • ‘jpeg’ JPEG bitmap device

        • ‘bmp’ BMP bitmap device

        • ‘tiff’ TIFF bitmap device

        • ‘quartz’ The graphics device for the OS X native Quartz 2d
          graphics system.  (This is only functional on OS X where it
          can be used from the ‘R.app’ GUI and from the command line:
          but it will display on the local screen even for a remote
          session.)

Có hai hướng tiếp cận trong việc hiển thị biểu đồ. Đầu tiên, ta có thể hiển thị ra thiết bị màn hình. Đây là cách đơn giản nhất, ta chỉ cần gọi hàm vẽ biểu đồ như plot(), xyplot(), hay qplot() để xuất biểu đồ ra thiết bị màn hình.

Ta lấy ví dụ sau. Dùng hàm plot() để vẽ biểu đồ thể hiện mối quan hệ giữa eruptions và waiting của tập dữ liệu faithful. Sau đó, ta có thể ghi chú thêm thông tin tiêu đề cho biểu đồ vừa mới xuất ra thiết bị màn hình.

with(faithful, plot(eruptions, waiting))
title(main = "Old Faithful Geyser data")
Plotting faithful

Plotting faithful

Đơn giản phải không nào. Ta có thể dùng hàm dev.cur() để kiểm tra thiết bị đồ họa nào đang được sử dụng.

# kiểm tra thiết bị đồ họa đang sử dụng
dev.cur()
X11cairo 
       2

Cách thứ hai để xuất biểu đồ đó là gửi thông tin vẽ biểu đồ vào file. Tùy vào mục đích sử dụng, ta có thể chỉ định cụ thể thiết bị gì để xuất ra file (ví dụ, file pdf, png). Ta sẽ xuất biểu đồ trên ra file myplot.pdf.

pdf(file="myplot.pdf")
# kiểm tra thiết bị đồ họa đang sử dụng
dev.cur()
pdf 
  3

Để xuất biểu đồ như hình trên, ta chạy lại hai dòng lệnh ban nãy.

with(faithful, plot(eruptions, waiting))
title(main = "Old Faithful Geyser data")
Plotting faithful

Plotting faithful

Lưu ý, khi sử dụng thiết bị đồ họa là file, ta nên nhớ đóng thiết bị này lại bằng hàm dev.off(). Nếu không làm như vậy, ta sẽ không thể mở file myplot.pdf được.

Thiết bị đồ họa file có hai loại chính là vector và bitmap. Vector (pdf, svg, postscript) thường được dùng để biểu diễn đường thẳng hay tô màu đồ thị bằng cách sử dụng các không gian điểm. Trong khi đó, bitmap (png, jpeg, tiff) hỗ trợ tốt cho biểu diễn số lượng lớn các chấm điểm dữ liệu hay các bức ảnh ở đời thật.

Mặc dù ta có thể mở cùng lúc các thiết bị đồ họa nhưng khi hiển thị ta chỉ có thể xuất ra trên một thiết bị tại cùng thời điểm. Ngoài ra, ta có thể chỉ định số id để truy xuất đến các thiết bị đồ họa bằng cách sử dụng hàm dev.set(<integer>).

Ta cũng có thể sao chép biểu đồ từ thiết bị này sang thiết bị khác. Ví dụ, ta muốn copy biểu đồ từ thiết bị màn hình sang thiết bị đồ họa file png như sau.

dev.copy(png, file = "geyserplot.png")
# đóng thiết bị sau khi sử dụng
dev.off()

Hy vọng, sau bài viết này bạn đã hiểu khái niệm thiết bị đồ họa trong R là gì.

Nguồn tham khảo: http://swirlstats.com/

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s