การสร้างภาพข้อมูลที่ไม่ได้ใช้งานมากที่สุด [ปิด]


178

ฮิสโทแกรมและสแกตเตอร์แปลงเป็นวิธีที่ยอดเยี่ยมในการแสดงข้อมูลและความสัมพันธ์ระหว่างตัวแปร แต่เมื่อเร็ว ๆ นี้ฉันสงสัยเกี่ยวกับเทคนิคการสร้างภาพข้อมูลที่ฉันขาดหายไป คุณคิดว่าอะไรคือพล็อตประเภทที่ถูกใช้น้อยที่สุด?

คำตอบควร:

  1. ไม่นิยมใช้ในทางปฏิบัติ
  2. เป็นที่เข้าใจได้โดยไม่ต้องมีการอภิปรายพื้นหลัง
  3. ใช้งานได้ในสถานการณ์ทั่วไปมากมาย
  4. รวมรหัสที่สามารถทำซ้ำได้เพื่อสร้างตัวอย่าง (โดยเฉพาะอย่างยิ่งใน R) รูปภาพที่เชื่อมโยงจะดี

13
ฉันคิดว่านี่เป็นการสนทนาที่มีประโยชน์มากและฉันเสียใจที่มันปิดลง
Alex Brown

2
@AlexBrown: แล้วทำไมไม่ลงคะแนนเพื่อเปิดอีกครั้ง? ฉันเห็นได้ว่าทำไมถ้อยคำของคำถามนี้อาจรู้สึกว่า "ไม่สร้างสรรค์" แต่คำถามนี้ส่งผลให้คำตอบที่รอบคอบและชาญฉลาดที่สุดในหัวข้อนี้ทุกที่บนเว็บ ฉันชอบที่จะเห็นคำตอบเหล่านี้ปรับปรุงและขยาย
สูงสุด

2
สิ่งนี้อาจถูกย้ายไปที่ stats.stackoverflow.com มันเหมาะกับไซต์นั้นมากกว่า
naught101

4
สงสารไม่มีใครพูดถึงQQ- แปลงที่นี่ก่อนที่จะถูกปิด พวกมันมีประโยชน์จริงๆ!
naught101

ควรเปิดใหม่
Peter Flom

คำตอบ:


89

ฉันเห็นด้วยกับโปสเตอร์อื่น ๆ : หนังสือของ Tufte นั้นยอดเยี่ยมและคุ้มค่าที่จะอ่าน

อันดับแรกฉันจะชี้ให้คุณไปที่บทช่วยสอนที่ดีมากใน ggplot2 และ ggobiจาก "มองหาข้อมูล" เมื่อต้นปีนี้ นอกเหนือจากนั้นฉันจะเน้นการสร้างภาพข้อมูลจาก R และแพ็คเกจกราฟิกสองชุด (ซึ่งไม่ได้ใช้กันอย่างแพร่หลายเช่นกราฟิกพื้นฐาน, ขัดแตะหรือ ggplot):

แผนที่ความร้อน

ฉันชอบการสร้างภาพข้อมูลที่สามารถจัดการข้อมูลหลายตัวแปรโดยเฉพาะข้อมูลอนุกรมเวลา แผนที่ความร้อนจะมีประโยชน์สำหรับสิ่งนี้ หนึ่งประณีตจริงๆใครได้รับการแนะนำโดยเดวิดสมิ ธ ในบล็อกปฏิวัติ นี่คือรหัสมารยาท ggplot ของนายอำเภอ:

stock <- "MSFT"
start.date <- "2006-01-12"
end.date <- Sys.Date()
quote <- paste("http://ichart.finance.yahoo.com/table.csv?s=",
                stock, "&a=", substr(start.date,6,7),
                "&b=", substr(start.date, 9, 10),
                "&c=", substr(start.date, 1,4), 
                "&d=", substr(end.date,6,7),
                "&e=", substr(end.date, 9, 10),
                "&f=", substr(end.date, 1,4),
                "&g=d&ignore=.csv", sep="")    
stock.data <- read.csv(quote, as.is=TRUE)
stock.data <- transform(stock.data,
  week = as.POSIXlt(Date)$yday %/% 7 + 1,
  wday = as.POSIXlt(Date)$wday,
  year = as.POSIXlt(Date)$year + 1900)

library(ggplot2)
ggplot(stock.data, aes(week, wday, fill = Adj.Close)) + 
  geom_tile(colour = "white") + 
  scale_fill_gradientn(colours = c("#D61818","#FFAE63","#FFFFBD","#B5E384")) + 
  facet_wrap(~ year, ncol = 1)

ซึ่งจบลงด้วยการมองเช่นนี้:

ข้อความแสดงแทน

RGL: กราฟิก 3 มิติแบบโต้ตอบ

แพ็คเกจอื่นที่คุ้มค่ากับความพยายามในการเรียนรู้คือRGLซึ่งมอบความสามารถในการสร้างกราฟิก 3 มิติแบบโต้ตอบได้อย่างง่ายดาย มีหลายตัวอย่างทางออนไลน์สำหรับสิ่งนี้ (รวมถึงในเอกสาร rgl)

R-Wiki มีตัวอย่างที่ดีของวิธีการพล็อตแผนการกระจาย 3D โดยใช้ rgl

GGobi

แพคเกจที่มีมูลค่ารู้ก็คือrggobi มีหนังสือของสปริงเกอร์เกี่ยวกับเรื่องนี้และเอกสาร / ตัวอย่างที่ดีมากมายออนไลน์รวมถึงหลักสูตร"ดูข้อมูล"


ดี ขอขอบคุณที่รวมรหัส / รูปภาพ
เอียนเฟลโลว์

สิ่งที่ระบุโดยตำแหน่งแนวตั้งของ 'Z' หรืองอในแต่ละเส้นแนวตั้งสีดำทึบ
ดั๊ก

นี่คือขอบเขตของเดือน (เดือนไม่สิ้นสุดในวันเดียวกัน)
เชน

3
นั่นเป็นสิ่งที่สวยงาม คุณทำให้ขอบเขตของเดือนเกิดขึ้นได้อย่างไร
Alex Brown


58

ฉันชอบดอทพล็อตและหาเมื่อฉันแนะนำพวกเขาให้คนอื่น ๆ สำหรับปัญหาข้อมูลที่เหมาะสมพวกเขาจะประหลาดใจและดีใจ ดูเหมือนว่าพวกเขาจะไม่ได้ใช้ประโยชน์มากนักและฉันก็ไม่สามารถหาสาเหตุได้

นี่คือตัวอย่างจาก Quick-R: dotplot กับข้อมูลรถยนต์

ฉันเชื่อว่าคลีฟแลนด์เป็นผู้รับผิดชอบต่อการพัฒนาและการประกาศใช้สิ่งเหล่านี้มากที่สุดและตัวอย่างในหนังสือของเขา (ซึ่งข้อมูลที่ผิดพลาดถูกตรวจจับได้ง่ายด้วย dotplot) เป็นอาร์กิวเมนต์ที่ทรงพลังสำหรับการใช้งานของพวกเขา โปรดทราบว่าตัวอย่างข้างต้นให้จุดหนึ่งจุดต่อบรรทัดเท่านั้นในขณะที่พลังที่แท้จริงของพวกเขามาพร้อมกับคุณมีหลายจุดในแต่ละบรรทัดโดยมีคำอธิบายที่อธิบาย ตัวอย่างเช่นคุณสามารถใช้สัญลักษณ์หรือสีที่แตกต่างกันสำหรับจุดเวลาที่แตกต่างกันสามจุดและจากนั้นจะเข้าใจรูปแบบเวลาในหมวดหมู่ที่แตกต่างกันได้อย่างง่ายดาย

ในตัวอย่างต่อไปนี้ (ทำใน Excel ของทุกสิ่ง!) คุณสามารถเห็นได้อย่างชัดเจนว่าหมวดหมู่ใดที่อาจได้รับผลกระทบจากการสลับเลเบล

Dotplot กับ 2 กลุ่ม


1
ดอทพล็อตแตกต่างจากสแกตเตอร์แปลงที่มีแกนสลับหนึ่งซึ่งอยู่ในประเภทใด
DrSAR

4
@DrSAR ฮิสโตแกรมแตกต่างจากบาร์ชาร์ตหรือพล็อตความหนาแน่นแตกต่างจากพล็อตบรรทัดอย่างไร คุณสามารถอธิบายแผนภูมิมาตรฐานจำนวนมากในรูปแบบของรูปทรงพื้นฐานที่มากขึ้น (cf ของ Bertin Semiologie Graphique ) แต่นั่นไม่ได้ทำให้เกิดความเข้าใจอย่างถ่องแท้ในการพล็อตสิ่งที่มีความพิเศษไม่เหมือนกัน ในกรณีนี้คุณกำลังพล็อตข้อมูลที่เป็นหมวดหมู่สองส่วน (หนึ่งในแนวตั้งหนึ่งโดยรูปทรงของอักขระการพล็อต) กับข้อมูลชิ้นต่อเนื่องหนึ่งชิ้น ขณะที่อยู่ในแพ็คเกจซอฟต์แวร์ส่วนใหญ่คุณจะแฮ็กสแกตเตอร์แปลงเพื่อสร้างมันเป็นสสารที่เด่นชัดที่สุดไม่ใช่สแกตเตอร์แปลง
Ari B. Friedman

2
@ gsk3 ไม่ได้ตั้งใจฟังคำพูดที่น่ารังเกียจ อันที่จริงตอนนี้ฉัน (หลังจากอ่านเพิ่มเติมเกี่ยวกับไวยากรณ์ของกราฟิกและผลงานที่คล้ายกัน) ตระหนักว่าความแตกต่างในระดับที่สูงขึ้นนี้ค่อนข้างสำคัญสำหรับการนำเสนอ ขอบคุณที่แสดงสิ่งนี้
DrSAR

@DrSAR และฉันไม่ได้ตั้งใจป้องกันเสียง ธรรมชาติของความคิดเห็น SO ดังนั้นฉันเดา ;-)
Ari B. Friedman

56

แปลงที่ใช้พิกัดเชิงขั้วมีการใช้น้อยมาก - บางคนบอกว่ามีเหตุผลดี ฉันคิดว่าสถานการณ์ที่แสดงให้เห็นถึงการใช้งานของพวกเขานั้นไม่ธรรมดา ฉันยังคิดว่าเมื่อสถานการณ์เหล่านั้นเกิดขึ้นพล็อตขั้วโลกสามารถเปิดเผยรูปแบบในข้อมูลที่พล็อตเชิงเส้นไม่สามารถ

ฉันคิดว่านั่นเป็นเพราะบางครั้งข้อมูลของคุณมีขั้วโดยธรรมชาติมากกว่าเชิงเส้น - เช่นเป็นรอบ (พิกัด x แทนเวลาระหว่าง 24 ชั่วโมงในช่วงหลายวัน) หรือข้อมูลถูกแมปไปยังพื้นที่คุณลักษณะขั้วโลก

นี่คือตัวอย่าง พล็อตนี้แสดงปริมาณการเข้าชมเฉลี่ยของเว็บไซต์เป็นรายชั่วโมง สังเกตเห็นหนามแหลมสองอันในเวลา 22.00 น. และเวลาตีหนึ่ง สำหรับวิศวกรเครือข่ายของไซต์นั้นมีความสำคัญ มันก็สำคัญที่พวกเขาเกิดขึ้นใกล้กัน (ห่างกันเพียงสองชั่วโมง) แต่ถ้าคุณพล็อตข้อมูลเดียวกันบนระบบพิกัดดั้งเดิมรูปแบบนี้จะถูกปกปิดอย่างสมบูรณ์ - วางแผนเป็นเส้นตรงทั้งสองหนจะแยกกัน20ชั่วโมงซึ่งพวกมันอยู่ด้วยกันแม้ว่าพวกเขาจะห่างกันเพียงสองชั่วโมงในวันติดต่อกัน แผนภูมิขั้วโลกด้านบนแสดงสิ่งนี้ด้วยวิธีที่ชาญฉลาดและเป็นธรรมชาติ (ไม่จำเป็นต้องมีคำอธิบายแผนภูมิ)

แผนภูมิขั้วโลกแสดงปริมาณการใช้งานไซต์โดยมีค่าสูงสุดที่ชั่วโมง 1 และ 22

มีสองวิธี (ที่ฉันรู้) ในการสร้างแปลงแบบนี้โดยใช้ R (ฉันสร้างพล็อตด้านบน w / R) หนึ่งคือการเขียนโค้ดฟังก์ชั่นของคุณเองในระบบกราฟิกพื้นฐานหรือกริด วิธีที่พวกเขาอื่น ๆ ซึ่งเป็นง่ายขึ้นคือการใช้แพคเกจวงกลม ฟังก์ชั่นที่คุณจะใช้คือ ' rose.diag ':

data = c(35, 78, 34, 25, 21, 17, 22, 19, 25, 18, 25, 21, 16, 20, 26, 
                 19, 24, 18, 23, 25, 24, 25, 71, 27)
three_palettes = c(brewer.pal(12, "Set3"), brewer.pal(8, "Accent"), 
                   brewer.pal(9, "Set1"))
rose.diag(data, bins=24, main="Daily Site Traffic by Hour", col=three_palettes)

4
คัดลอกรหัสของคุณฉันได้รับพล็อตที่แตกต่างกันมาก (นั่นค่อนข้างน่าเกลียด); คิดอะไรทำไม ฉันได้รับคำเตือนนี้: 1: ใน as.circular (xx [, 1]): วัตถุถูกบังคับให้คลาส 'เวียน' โดยใช้ค่าเริ่มต้นสำหรับส่วนประกอบต่อไปนี้: type: 'angles' units: 'template' radians ':' none 'modulo:' asis 'zero: 0 การหมุน:' counter 'rose.diagdata24 การเข้าชมเว็บไซต์รายวันโดย Hourthree_palettes
datayoda

ผมมีปัญหาเดียวกัน.
crayola

คุณสามารถทำได้ด้วยพล็อตไลน์เช่นกัน อาจอ่านยากขึ้นเล็กน้อย แต่มันก็ยอดเยี่ยมมากสำหรับข้อมูลที่ละเอียดมากขึ้นหรือข้อมูลที่ผ่านมากกว่าหนึ่งรอบ (เช่นพล็อตสิบรอบแล้ววางแผนเฉลี่ย)
naught101

1
ฉันยังมีปัญหาในการจำลองพล็อต ในที่สุดฉันก็ตัดสินใจว่าจะใช้ ggplot2 ง่ายขึ้น ฉันได้ทำการสาธิตสั้น ๆ เกี่ยวกับ Rpubs ด้วยรหัสและผลลัพธ์: rpubs.com/mattbagg/circular
MattBagg

1
ggplot2 ที่เทียบเท่า:qplot(y=data, x=1:length(data), fill=factor(1:length(data)), stat='identity', geom='bar') + coord_polar()
naught101

54

หากพล็อตการกระจายของคุณมีคะแนนมากมายจนกลายเป็นความยุ่งเหยิงอย่างสมบูรณ์ลองพล็อตการกระจายแบบราบเรียบ นี่คือตัวอย่าง:

library(mlbench) ## this package has a smiley function
n <- 1e5 ## number of points
p <- mlbench.smiley(n,sd1 = 0.4, sd2 = 0.4) ## make a smiley :-)
x <- p$x[,1]; y <- p$x[,2]
par(mfrow = c(1,2)) ## plot side by side
plot(x,y) ## left plot, regular scatter plot
smoothScatter(x,y) ## right plot, smoothed scatter plot

hexbinแพคเกจ (แนะนำโดย @Dirk Eddelbuettel) ถูกนำมาใช้เพื่อวัตถุประสงค์เดียวกัน แต่smoothScatter()มีความได้เปรียบที่ว่ามันเป็นของgraphicsแพคเกจและดังนั้นจึงเป็นส่วนหนึ่งของการติดตั้ง R มาตรฐาน

ยิ้มเป็นแผนการกระจายปกติหรือราบ


6
เพื่อความสมบูรณ์คุณยังสามารถได้รับผลกระทบนี้ใน ggplot โดยใช้ความโปร่งใส (อัลฟา) ร่วมกับจุด geom
Paul Hiemstra

1
สิ่งนี้เหมือนกับการประมาณความหนาแน่นของเคอร์เนลหรือคล้ายกัน?
endolith

30

เกี่ยวกับประกายความคิดและ Tufte อื่น ๆYaleToolkitแพคเกจในCRANให้ฟังก์ชั่นและ sparklinesparklines

แพคเกจอื่นที่มีประโยชน์สำหรับชุดข้อมูลที่มีขนาดใหญ่กว่าคือhexbinเนื่องจากมัน 'เก็บข้อมูล' อย่างชาญฉลาดในถังเพื่อจัดการกับชุดข้อมูลที่อาจมีขนาดใหญ่เกินไปสำหรับ scatterplots ที่ไร้เดียงสา


4
+1 กับประกายไฟ ขณะนี้ฉันกำลังทำงานกับแพ็คเกจที่เน้นการสร้างสปาร์คไลน์ใน R-- พวกเขาสร้างตารางเพิ่มเติมในรายงาน Sweave
Sharpie

1
เย็น! ฉันไม่ค่อยมีความสุขกับสิ่งที่เจย์มีใน YaleToolkit และชอบที่จะมีประกายไฟในตาราง!
Dirk Eddelbuettel

ฉันเพิ่งบันทึกวิธีการผลิตประกายไฟโดยใช้เฉพาะplotในการอัปเดตคำถามของฉันด้วยความช่วยเหลือจากโพสต์ฟอรัม Tufte
Ben

1
Hmisc::latex()รุ่นของผลลัพธ์จากHmisc::describeรวมถึงมินิสโตแกรมที่ได้รับการรวมอยู่ในตาราง
IRTFM

28

แปลงไวโอลิน (ซึ่งรวมกล่องแปลงที่มีความหนาแน่นเคอร์เนล) ค่อนข้างแปลกใหม่และค่อนข้างเย็น vioplotแพคเกจในการวิจัยช่วยให้คุณสามารถทำให้พวกเขาสวยได้อย่างง่ายดาย

นี่คือตัวอย่าง (ลิงค์วิกิพีเดียยังแสดงตัวอย่าง):

ป้อนคำอธิบายรูปภาพที่นี่


3
มีการจัดทำแผนการไวโอลินผ่านแพ็คเกจตาข่าย:bwplot(... panel = panel.violin)
David J.

3
ไวโอลินรุ่น ggplot2 กำลังจะมาถึงในไม่ช้า github.com/wch/ggplot2/wiki/geom_violin
Roman Luštrik

ฉันไม่ได้ผอมไวโอลินที่มีประโยชน์มากฉันชอบแสดงจุดทั้งหมดด้วยกระวนกระวายใจแทน
Nakx

25

การสร้างภาพชุดเวลาที่ดีอีกอย่างที่ฉันเพิ่งตรวจสอบคือ"แผนภูมิชน" (ดังที่แสดงในโพสต์นี้ในบล็อก "Learning R" ) สิ่งนี้มีประโยชน์มากสำหรับการมองเห็นการเปลี่ยนแปลงของตำแหน่งเมื่อเวลาผ่านไป

คุณสามารถอ่านเกี่ยวกับวิธีการสร้างบนhttp://learnr.wordpress.com/แต่นี่คือสิ่งที่มันจะปรากฏขึ้นเช่น:

ข้อความแสดงแทน


ฉันชอบแผนภูมิ bump สำหรับข้อมูลนี้โดยเฉพาะ แต่มีความลำบากในการคิดสถานการณ์ทั่วไปที่จะใช้งาน ที่กล่าวว่าฉันคิดว่าเราทุกคนสามารถยอมรับว่าบล็อกการเรียนรู้ R เขย่าถุงเท้า
เอียนเฟลโลว์

7
แผนภูมิชนเป็นพล็อตพิกัดขนานของข้อมูลที่มีการจัดอันดับ
hadley

1
สิ่งนี้ทำให้ฉันนึกถึง slopegraph ซึ่งเป็นสิ่งที่ดีสำหรับการเป็นตัวแทนการเปลี่ยนแปลงการจัดอันดับในช่วงเวลาหรือความสัมพันธ์ระหว่างอันดับ: charliepark.org/slopegraphs
topchef

21

ฉันยังชอบการดัดแปลง boxplots ของ Tufte ที่ให้คุณทำทวีคูณเล็ก ๆ เปรียบเทียบได้ง่ายกว่าเพราะมันบางในแนวนอนและไม่เกะกะกับพล็อตด้วยหมึกซ้ำซ้อน อย่างไรก็ตามมันทำงานได้ดีที่สุดกับหมวดหมู่จำนวนมากพอสมควร หากคุณมีพล็อตเพียงไม่กี่จุดบ็อกซ์ปกติ (Tukey) จะดูดีขึ้นเนื่องจากพวกเขามีส่วนยกของพวกเขาอีกเล็กน้อย

library(lattice)
library(taRifx)
compareplot(~weight | Diet * Time * Chick, 
  data.frame=cw , 
  main = "Chick Weights",
  box.show.mean=FALSE,
  box.show.whiskers=FALSE,
  box.show.box=FALSE
  )

compareplot

วิธีอื่น ๆ ในการทำสิ่งเหล่านี้ (รวมถึงรูปแบบกล่อง Tufte ชนิดอื่น ๆ ) ได้ถูกกล่าวถึงในคำถามนี้


@daroczig ขอบคุณ วันหนึ่งฉันจะเขียนมันอีกครั้งเพื่อกำหนดค่าการจัดกลุ่มที่แตกต่างกัน ฉันเรียนรู้มากมายตั้งแต่ฉันเขียนฟังก์ชั่นนั้น!
Ari B. Friedman

1
ฉันชอบแปลงของคุณดีกว่าของ tufte ซึ่งอ่านยากมาก ฉันยังคงคิดว่ารูปแบบกล่องของ Tukey นั้นดีกว่าแม้ว่าการประนีประนอมที่ดีอาจเป็นสิ่งที่คุณมีที่นี่ แต่มีความกว้าง 3px สำหรับกล่องแทนที่จะเป็น 1px ชดเชย และฉันคิดว่าบรรทัด horisontal แบบกว้าง 1px สำหรับค่ามัธยฐานน่าจะเป็น neater และแน่นอนกว่านี้
naught101

19

เราไม่ควรลืมเรื่องน่ารักและพล็อตเรื่องต้นกำเนิดและใบไม้ที่สำคัญ (ในอดีต) ที่ Tufte ชอบเช่นกัน! คุณจะได้รับภาพรวมตัวเลขโดยตรงของความหนาแน่นของข้อมูลและรูปร่างของคุณ (แน่นอนถ้าชุดข้อมูลของคุณไม่ใหญ่กว่านั้นประมาณ 200 คะแนน) ใน R ฟังก์ชั่นstemจะสร้างสแต็กสแตมและใบไม้ของคุณ (ในเวิร์กสเปซ) ฉันชอบที่จะใช้gstemฟังก์ชั่นจากแพคเกจfmsbเพื่อวาดมันโดยตรงในอุปกรณ์กราฟิก ด้านล่างนี้คือความแปรปรวนของอุณหภูมิร่างกายช่องคลอด (ข้อมูลควรอยู่ในชุดข้อมูลเริ่มต้นของคุณ) ในการแสดงผลแบบสแต็กโดยใบ:

  require(fmsb)
  gstem(beaver1$temp)

ป้อนคำอธิบายรูปภาพที่นี่



15

นอกเหนือจากการทำงานที่ยอดเยี่ยมของ Tufte ผมขอแนะนำหนังสือโดยวิลเลียมเอคลีฟแลนด์: ข้อมูลแสดงผลและองค์ประกอบของกราฟข้อมูล ไม่เพียง แต่พวกเขายอดเยี่ยม แต่พวกเขาทั้งหมดทำใน R และฉันเชื่อว่ารหัสที่มีต่อสาธารณชน


14

boxplots! ตัวอย่างจากวิธีใช้ R:

boxplot(count ~ spray, data = InsectSprays, col = "lightgray")

ในความคิดของฉันมันเป็นวิธีที่สะดวกที่สุดในการดูข้อมูลอย่างรวดเร็วหรือเปรียบเทียบการกระจาย vioplotสำหรับการกระจายที่ซับซ้อนมากขึ้นมีเป็นส่วนขยายที่เรียกว่า


2
Beanplot อาจจะกล่าวถึงที่นี่เช่นกันjstatsoft.org/v28/c01/paperและcran.r-project.org/web/packages/beanplot/index.html
Radek

Boxplots นั้นไม่ได้ใช้งานน้อยเกินไปใช่ไหม ฉันหมายถึงแน่นอนว่าในแผนภูมิแท่งกระดาษจำนวนมากนั้นใช้สำหรับข้อมูลที่ควรจะเป็นแบบกล่อง แต่มันก็ยังค่อนข้างธรรมดา
naught101

11

พล็อตโมเสกดูเหมือนว่าฉันจะตรงตามเกณฑ์ทั้งสี่ที่กล่าวถึง มีตัวอย่างใน r ภายใต้ mosaicplot


3
การนำไปใช้ที่ดีขึ้นของการทำโมเสกแปลงอยู่ในไลบรารี vcd (ชื่อฟังก์ชัน 'mosaic') มันมีลายเซ็นของเมธอดที่ยืดหยุ่นกว่าและถูกนำมาใช้ในกริด (แทนที่จะเป็นระบบกราฟิก 'ฐาน')
ดั๊ก

10

ตรวจสอบผลงานของ Edward Tufte และโดยเฉพาะหนังสือเล่มนี้

คุณยังสามารถลองและนำเสนอการเดินทางของเขานำเสนอการเดินทางของเขาค่อนข้างดีและรวมหนังสือสี่เล่มของเขาไว้ด้วย (ฉันสาบานว่าฉันไม่ได้เป็นเจ้าของหุ้นของผู้เผยแพร่!)

โดยวิธีการที่ฉันชอบเทคนิคการสร้างภาพข้อมูลประกายไฟของเขา เซอร์ไพร์ส! Google เขียนไปแล้วและวางมันบนGoogle Code


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.