วิธีการพล็อตแนวโน้มอย่างถูกต้อง


45

ฉันกำลังสร้างกราฟเพื่อแสดงแนวโน้มอัตราการตาย (ต่อ 1,000 ppl.) ในประเทศต่าง ๆ และเรื่องราวที่ควรได้จากพล็อตคือประเทศเยอรมนี (เส้นสีฟ้าอ่อน) เป็นสิ่งเดียวที่แนวโน้มเพิ่มขึ้นหลังปี 1932 นี่คือ ลอง (พื้นฐาน) ครั้งแรกของฉัน

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

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

ข้อมูลมีดังต่อไปนี้

year     de     fr      be       nl     den      ch     aut     cz       pl
1927    10.9    16.5    13      10.2    11.6    12.4    15      16      17.3
1928    11.2    16.4    12.8    9.6     11      12      14.5    15.1    16.4
1929    11.4    17.9    14.4    10.7    11.2    12.5    14.6    15.5    16.7
1930    10.4    15.6    12.8    9.1     10.8    11.6    13.5    14.2    15.6
1931    10.4    16.2    12.7    9.6     11.4    12.1    14      14.4    15.5
1932    10.2    15.8    12.7    9       11      12.2    13.9    14.1    15
1933    10.8    15.8    12.7    8.8     10.6    11.4    13.2    13.7    14.2
1934    10.6    15.1    11.7    8.4     10.4    11.3    12.7    13.2    14.4
1935    11.4    15.7    12.3    8.7     11.1    12.1    13.7    13.5    14
1936    11.7    15.3    12.2    8.7     11      11.4    13.2    13.3    14.2
1937    11.5    15      12.5    8.8     10.8    11.3    13.3    13.3    14

2
ข้อมูลจากอิตาลีและสเปนจะน่าสนใจเมื่อเปรียบเทียบ พวกเขายังมีรัฐบาล facist ในช่วงเวลานั้น
asmaier

1
ข้างความคิดที่ดีที่ให้ไว้ในคำตอบโปรดตรวจสอบให้แน่ใจว่าได้เริ่มวางแผนของคุณที่ 0 (แกน y) เพื่อให้ขนาดการเปลี่ยนแปลงสัมพัทธ์ชัดเจนยิ่งขึ้น
WoJ

2
@WoJ ฉันเห็นประเด็นของคุณ แต่ในทางปฏิบัติแล้วช่วงนั้นอยู่ที่ประมาณ 9 ถึงประมาณ 18 ต่อ 1,000 ดังนั้นครึ่งหนึ่งของพื้นที่กราฟจะถูกใช้เพื่อแสดงว่าอัตราการตายนั้นไม่เป็นศูนย์ ฉันคิดว่านั่นเป็นสาเหตุที่คนส่วนใหญ่ (รวมตัวเอง) ไม่ต้องการทำอย่างนั้นในคำตอบของพวกเขา พิจารณาว่าเกณฑ์ของคุณหยุดอยู่ที่ใดเช่นคุณจะยืนยันว่าการเปลี่ยนแปลงทางประวัติศาสตร์ในความสูงของผู้ใหญ่เริ่มต้นที่ศูนย์หรือไม่ การสนทนาเพิ่มเติมได้ที่เช่นstats.stackexchange.com/questions/184525/…
Nick Cox

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

1
นอกจากนี้คุณควรแสดงช่วงเวลาที่ยิ่งใหญ่กว่าเพียง 10 ปี การมุ่งเน้นไปที่สิบปีนี้นั้นยุติธรรมเมื่อคุณแสดงสภาพแวดล้อม เป็นเรื่องธรรมดามากที่จะเห็นภาพระยะใกล้ซึ่งให้ความรู้สึกที่น้อยลงในมุมมองที่กว้างขึ้น เมื่อเส้นโค้งเหล่านี้ขึ้นและลงเหมือนคลื่นในพายุคุณต้องแสดงให้เห็นทั้งทะเลและไม่ใช่แค่คลื่นเดียวที่เกิดขึ้นเพื่อสัมพันธ์กับเรื่องราวที่ดี (ฉันแน่ใจว่ามีตัวอย่างโดย Tufte ที่แสดงหลักการนี้)
Sextus Empiricus

คำตอบ:


53

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

ในการใช้งานที่ราบรื่นยิ่งขึ้นคุณต้องให้ผู้อ่านเชื่อมั่นว่าคุณไม่ได้ปรับรูปแบบที่น่าสนใจให้ราบรื่น

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

อัปเดตหลังจากได้รับคำขอรหัสสองสามรายการ :

ฉันทำสิ่งนี้ในตัวสร้างกราฟเชิงโต้ตอบของJMP สคริปต์ JMP คือ:

Graph Builder(
Size( 528, 456 ), Show Control Panel( 0 ), Show Legend( 0 ),
// variable role assignments:
Variables( X( :year ), Y( :Deaths ), Overlay( :Country ) ),
// spline smoother:
Elements( Smoother( X, Y, Legend( 3 ) ) ),
// customizations:
SendToReport(
    // x scale, leaving room for annotations
    Dispatch( {},"year",ScaleBox,
        {Min( 1926.5 ), Max( 1937.9 ), Inc( 2 ), Minor Ticks( 1 )}
    ),
    // customize colors and DE line width
    Dispatch( {}, "400", ScaleBox, {Legend Model( 3,
        Properties( 0, {Line Color( "gray" )}, Item ID( "aut", 1 ) ),
        Properties( 1, {Line Color( "gray" )}, Item ID( "be", 1 ) ),
        Properties( 2, {Line Color( "gray" )}, Item ID( "ch", 1 ) ),
        Properties( 3, {Line Color( "gray" )}, Item ID( "cz", 1 ) ),
        Properties( 4, {Line Color( "gray" )}, Item ID( "den", 1 ) ),
        Properties( 5, {Line Color( "gray" )}, Item ID( "fr", 1 ) ),
        Properties( 6, {Line Color( "gray" )}, Item ID( "nl", 1 ) ),
        Properties( 7, {Line Color( "gray" )}, Item ID( "pl", 1 ) ),
        Properties( 8, {Line Color("dark red"), Line Width( 3 )}, Item ID( "de", 1 ))
    )}),
    // add line annotations (omitted)

));


4
จากประสบการณ์ของฉันชุดการปรับให้เรียบเป็นวิธีปฏิบัติที่ไม่ค่อยเกิดขึ้นในแวดวงสังคมศาสตร์
luchonacho

6
อาจเป็นเหตุผลที่แสดงให้พวกเขาเห็นสิ่งใหม่และมีประโยชน์หรือไม่
kjetil b halvorsen

9
โดยไม่คำนึงถึงบรรทัดฐานในสังคมศาสตร์ฉันพบว่าการเลื่อนที่ลดลงนั้นเกิดขึ้นในปี 1930 และการปรับตัวขึ้นที่เกิดขึ้นในปี 1935 การขัดขวางในหลายประเทศที่เกิดขึ้นในปี 1929 ก็ถูกบดบังด้วยเช่นกัน มิฉะนั้นฉันชอบวิธีการแบบง่าย ๆ นี้มาก
Underminer

7
+1 สำหรับการใช้เพียงสองสี (อาจทำให้สีเทาอ่อนลง?) และหลีกเลี่ยงตำนานโดยการใส่ชื่อประเทศทางด้านขวา -1 สำหรับการปรับให้เรียบซึ่งละทิ้งข้อมูลโดยไม่มีเหตุผลที่ดี ดังนั้นฉันไม่จำเป็นต้องลงคะแนนจริง ๆ ;-)
S. Kolassa - Reinstate Monica

10
@StephanKolassa ผมคิดว่า Xan ของจุดที่มีเป็นเหตุผลที่ดีที่ทิ้งข้อมูล: มุ่งเน้นไปที่แนวโน้มโดยรวมมากกว่าปีต่อปีแปรปรวน "เสียง" ในระดับหนึ่งคุณได้ "ยกเลิกข้อมูล" แล้ว - คุณกำลังดูตัวเลขรายปี ฉันสงสัยกราฟจะได้รับการปรับปรุงโดยการวางแผนอัตรารายวันซึ่งเป็นที่ที่ "ทำข้อมูลไม่ทิ้ง" จะพาคุณ, น่าหัวเราะโฆษณา - เป็นเรื่องจริงที่แนวโน้มบางอย่างถูกบดบังโดยการทำให้เรียบ แต่คนอื่น ๆ (เช่นการเปลี่ยนแปลงตามฤดูกาล) จะถูกบดบังด้วยการเลือกอัตรารายปี มีความไว้วางใจบางส่วนที่เกี่ยวข้องว่ารูปแบบที่เกี่ยวข้องยังคงแสดงอยู่
RM

39

มีคำตอบที่ดีอยู่ที่นี่ ฉันขอพาคุณไปที่คำพูดของคุณที่คุณต้องการแสดงให้เห็นว่าแนวโน้มของเยอรมนีนั้นแตกต่างจากที่เหลือ ระดับกับการเปลี่ยนแปลงเป็นความแตกต่างทางเศรษฐศาสตร์ ข้อมูลของคุณอยู่ในระดับแต่คำถามของคุณตามที่ระบุไว้แสวงหาการเปลี่ยนแปลง วิธีที่จะทำคือการตั้งค่าระดับการอ้างอิง (ที่นี่ 1932) เป็น1จากตรงนั้นแต่ละปีติดต่อกันจะเป็นเพียงเสี้ยวหนึ่งของปีก่อนหน้า (เป็นเรื่องปกติที่จะต้องใช้บันทึกเพื่อทำการเปลี่ยนแปลงที่มีเสถียรภาพและสมมาตรมากขึ้นซึ่งจะเปลี่ยนความหมายของตัวเลขที่แน่นอนถ้าคุณต้องการให้ใครสักคนได้รับสิ่งนั้นจากพล็อต แต่โดยปกติแล้วสำหรับคนประเภทนี้ สามารถดูรูปแบบได้) จากนั้นคุณจะได้รับผลรวมสะสมสำหรับแต่ละชุดและคูณด้วย100 1001100โดยการประชุม นั่นคือสิ่งที่คุณวางแผน กรณีของคุณเป็นเรื่องธรรมดาเล็กน้อยที่จุดอ้างอิงของคุณอยู่ตรงกลางซีรีย์ของคุณดังนั้นฉันวิ่งไปทั้งสองทิศทางจากปี 1932 ด้านล่างเป็นตัวอย่างง่ายๆที่เขียนไว้ใน R (จะมีหลายวิธีในการสร้างโค้ดและ พล็อตดีกว่า แต่ควรแสดงความคิดตรงไปตรงมา) ฉันทำบรรทัดสำหรับเยอรมนีหนาแตกต่างในตำนานและผมเพิ่มเส้นอ้างอิงที่100เป็นเรื่องง่ายที่จะเห็นว่าเยอรมนีโดดเด่นกว่าที่อื่น คุณสามารถเห็นได้ว่าประเทศอื่น ๆ ทั้งหมดจบลงด้วยอัตราที่ต่ำกว่าที่ 2480 กว่า 2475 และการเปลี่ยนแปลงในแต่ละปีมีความผันผวนน้อยกว่าในปี 2475 หลังจากปีกว่าในปีที่ผ่านมา 100

d = read.table(text="
year     de     fr      be       nl     den      ch     aut     cz       pl
1927    10.9    16.5    13      10.2    11.6    12.4    15      16      17.3
...
1937    11.5    15      12.5    8.8     10.8    11.3    13.3    13.3    14",
header=T)

d2          = d  # we'll end up needing both
d2[6,2:10]  = 1  # set 1932 as 1
for(j in 2:10){   
  for(i in 7:11){
      # changes moving forward from 1932:
    d2[i,j] = log( d[i,j]/d[i-1,j] )
      # running sum moving forward from 1932:
    d2[i,j] = d2[i,j]+d2[i-1,j]
  }
  for(i in 5:1){
      # changes moving backward from 1932:
    d2[i,j] = log( d[i,j]/d[i+1,j] )
      # running sum moving forward from 1932:
    d2[i,j] = d2[i+1,j]+d2[i,j]
  }
}
d2[,2:10]   = d2[,2:10]*100  # multiply all values by 100

windows()  # plot of changes
  plot(1,1, xlim=c(1927,1937), ylim=c(82,118), xlab="Year", 
       ylab="Change from 1932", main="European death rates")
  abline(h=100, col="lightgray")
  for(j in 2:10){
    lines(1927:1937, d2[,j], col=rainbow(9)[j-1], lwd=ifelse(j==2,2,1))
  }
  legend("bottomleft", legend=colnames(d2)[2:10], lwd=c(2,rep(1,8)), lty=1, 
         col=rainbow(9), ncol=2)

windows()  # plot of levels
  plot(1,1, xlim=c(1927,1937), ylim=c(8,18.4), xlab="Year", 
       ylab="Deaths per thousand", main="European death rates")
  abline(h=d[6,2:10], col="gray90")
  points(rep(1932,9), d[6,2:10], col=rainbow(9), pch=16)
  for(j in 2:10){
    lines(1927:1937, d[,j], col=rainbow(9)[j-1], lwd=ifelse(j==2,2,1))
  }
  legend("topright", legend=colnames(d)[2:10], lwd=c(2,rep(1,8)), lty=1, 
         col=rainbow(9), ncol=2)

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

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

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


+1 โซลูชันที่ยอดเยี่ยมจริงๆ
Repmat

2
มีพื้นที่เพียงพอที่จะสูญเสียตำนาน (ฆ่ากุญแจ) และติดป้ายแต่ละส่วนโค้งภายในร่างกายของกราฟ
Nick Cox

3
มีหลายวิธีในการสร้างโค้ดและพล็อตเรื่องที่ดีกว่า ประเด็นหลักของฉันที่นี่คือการแยกแยะความคิดระดับและการเปลี่ยนแปลง b / t และให้การสาธิตขั้นพื้นฐานว่าการมองเห็นการเปลี่ยนแปลงนั้นเป็นอย่างไร
gung - Reinstate Monica

17

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

เรียงตามตัวอักษรของประเทศนั้นมักจะเป็นค่าเริ่มต้นที่ไม่ได้ผลและไม่ได้ยืนยันที่นี่ โชคดีและโชคดีที่เยอรมนีอยู่ในใจกลางของจอแสดงผล 3 x 3 คำบรรยายง่ายๆ - ดู! รูปแบบของเยอรมนีนั้นโดดเด่นด้วยการปรับตัวเพิ่มขึ้นในปี 1932 - เป็นไปได้และเป็นไปได้

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

โชคดีที่โชคดีที่มี 9 ประเทศที่เพียงพอที่จะพิสูจน์ความพยายามในการแยกแผง แต่ไม่มากเกินกว่าที่จะทำให้การออกแบบนั้นทำไม่ได้ (ด้วยการพูดว่า 30 และ 300 แผ่นแน่นอนอาจมีแผงที่จะสแกนมากเกินไป กลั่นกรอง).

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

รหัส Stata สำหรับบันทึก:

clear
input int year double(de fr be nl den ch aut cz pl)
1927 10.9 16.5   13 10.2 11.6 12.4   15   16 17.3
1928 11.2 16.4 12.8  9.6   11   12 14.5 15.1 16.4
1929 11.4 17.9 14.4 10.7 11.2 12.5 14.6 15.5 16.7
1930 10.4 15.6 12.8  9.1 10.8 11.6 13.5 14.2 15.6
1931 10.4 16.2 12.7  9.6 11.4 12.1   14 14.4 15.5
1932 10.2 15.8 12.7    9   11 12.2 13.9 14.1   15
1933 10.8 15.8 12.7  8.8 10.6 11.4 13.2 13.7 14.2
1934 10.6 15.1 11.7  8.4 10.4 11.3 12.7 13.2 14.4
1935 11.4 15.7 12.3  8.7 11.1 12.1 13.7 13.5   14
1936 11.7 15.3 12.2  8.7   11 11.4 13.2 13.3 14.2
1937 11.5   15 12.5  8.8 10.8 11.3 13.3 13.3   14
end

rename (de-pl) (death=)
reshape long death, i(year) j(country) string
set scheme s1color 
line death year, by(country, yrescale note("")) xtitle("") xla(1927(5)1937)

แก้ไข:

การเพิ่มประสิทธิภาพอย่างง่าย ๆ ของกราฟนี้ซึ่งแนะนำโดย Tim Morris คือการเน้นปีที่มีค่าสูงสุด:

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

egen max = max(death) , by(country)
replace max = max == death
twoway line death year || scatter death year if max, ms(O)  ///
by(country, yrescale note("") legend(off)) xtitle("") xla(1927(5)1937)  

แก้ไข 2 (แก้ไขเพื่อแสดงรหัสที่ง่ายขึ้น):

อีกทางเลือกหนึ่งการออกแบบต่อไปนี้จะแสดงแต่ละซีรีย์แยกจากกัน แต่ในแต่ละครั้งที่ซีรีย์อื่นเป็นฉากหลัง แนวคิดทั่วไปถูกกล่าวถึงภายในเธรดที่เกี่ยวข้องนี้

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

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

รหัส Stata สำหรับบันทึก:

(รหัสไปinput, reshape, renameดังกล่าวข้างต้นในคำตอบนี้)

* type "ssc inst fabplot" to install
fabplot line death year, by(country, compact note("countries highlighted in turn")) ///
ytitle("death rate, yearly deaths per 1000") yla(8(2)18, ang(h)) ///
xla(1927(5)1937, format(%tyY)) xtitle("") front(connected) 

fabplotจะต้องเข้าใจในฐานะที่เป็นfront หรือforndround and backdrop หรือbackground plot ไม่ใช่เสียงสะท้อนของคำสแลงปี 1960 สำหรับคำว่า "เหลือเชื่อ"


3
+1 ฉันต้องบอกว่ารหัสค่อนข้างกระชับเพื่อให้ได้พล็อตที่ดีเช่นนั้น
gung - Reinstate Monica

@ gung ขอบคุณ เสียงไชโยโห่ร้องที่นี่สมควรได้รับโดย StataCorp เนื่องจากคำสั่งเหล่านี้เป็นคำสั่ง inbuilt ฉันกำลัง zapping ข้อความเริ่มต้นบางส่วนเช่นyearเป็นชื่อแกนx (ใครต้องการสิ่งนั้น) ฉันจะเพิ่มที่ให้กับผู้ใช้ Stata โครงสร้างข้อมูลธรรมชาติจะเป็นหนึ่งที่ไม่ต้องมีภาระหน้าที่และrename reshapeแต่มีแผงที่แตกต่างกัน (ที่นี่ในประเทศ) เป็นบล็อกการสังเกตที่แตกต่างกัน
Nick Cox

+1 อย่างไรก็ตามคุณลักษณะที่เป็นปัญหาอย่างหนึ่งของการแก้ปัญหานี้คือการสูญเสียบริบท: เราไม่สามารถเห็นได้อย่างง่ายดายว่าแม้ว่าอัตราการตายของเยอรมนีจะเพิ่มขึ้น แต่ก็เริ่มต้นที่ระดับต่ำและยังไม่สูงมากนัก
whuber

1
การออกแบบทางเลือกใน EDIT 2 เป็นวิธีหนึ่งในการจัดการประเด็นสำคัญโดย @whuber เกี่ยวกับบริบท
Nick Cox

15

กราฟของคุณมีความสมเหตุสมผล แต่จะต้องมีการปรับแต่งบางอย่างรวมถึงชื่อป้ายชื่อแกนและป้ายชื่อประเทศที่สมบูรณ์ หากเป้าหมายของคุณคือการเน้นความจริงที่ว่าเยอรมนีเป็นประเทศเดียวที่มีอัตราการเสียชีวิตเพิ่มขึ้นตลอดระยะเวลาการสังเกตการณ์วิธีง่ายๆในการทำเช่นนี้ก็คือการเน้นบรรทัดนี้ในพล็อตโดยใช้เส้นหนา line-type หรือ alpha transparent คุณสามารถเพิ่มพล็อตอนุกรมเวลาของคุณด้วยบาร์พล็อตที่แสดงการเปลี่ยนแปลงของอัตราการตายเมื่อเวลาผ่านไปเพื่อลดความซับซ้อนของเส้นอนุกรมเวลาจะลดลงเป็นการวัดการเปลี่ยนแปลงเพียงครั้งเดียว

นี่คือวิธีที่คุณสามารถสร้างแปลงเหล่านี้โดยใช้ggplotในR:

library(tidyr);
library(dplyr);
library(ggplot2);

#Create data frame in wide format
DATA_WIDE <- data.frame(Year = 1927L:1937L,
                        DE   = c(10.9, 11.2, 11.4, 10.4, 10.4, 10.2, 10.8, 10.6, 11.4, 11.7, 11.5),
                        FR   = c(16.5, 16.4, 17.9, 15.6, 16.2, 15.8, 15.8, 15.1, 15.7, 15.3, 15.0),
                        BE   = c(13.0, 12.8, 14.4, 12.8, 12.7, 12.7, 12.7, 11.7, 12.3, 12.2, 12.5),
                        NL   = c(10.2,  9.6, 10.7,  9.1,  9.6,  9.0,  8.8,  8.4,  8.7,  8.7,  8.8),
                        DEN  = c(11.6, 11.0, 11.2, 10.8, 11.4, 11.0, 10.6, 10.4, 11.1, 11.0, 10.8),
                        CH   = c(12.4, 12.0, 12.5, 11.6, 12.1, 12.2, 11.4, 11.3, 12.1, 11.4, 11.3),
                        AUT  = c(15.0, 14.5, 14.6, 13.5, 14.0, 13.9, 13.2, 12.7, 13.7, 13.2, 13.3),
                        CZ   = c(16.0, 15.1, 15.5, 14.2, 14.4, 14.1, 13.7, 13.3, 13.5, 13.3, 13.3),
                        PL   = c(17.3, 16.4, 16.7, 15.6, 15.5, 15.0, 14.2, 14.4, 14.0, 14.2, 14.0));

#Convert data to long format
DATA_LONG <- DATA_WIDE %>% gather(Country, Measurement, DE:PL);

#Set line-types and sizes for plot
#Germany (DE) is the fifth country in the plot
LINETYPE <- c("dashed", "dashed", "dashed", "dashed", "solid", "dashed", "dashed", "dashed", "dashed");
SIZE     <- c(1, 1, 1, 1, 2, 1, 1, 1, 1);

#Create time-series plot
theme_set(theme_bw());
PLOT1 <- ggplot(DATA_LONG, aes(x = Year, y = Measurement, colour = Country)) + 
         geom_line(aes(size = Country, linetype = Country)) +
         scale_size_manual(values = SIZE) +
         scale_linetype_manual(values = LINETYPE) +
         scale_x_continuous(breaks = 1927:1937) +
         scale_y_continuous(limits = c(0, 20)) +
         labs(title = "Annual Time Series Plot: Death Rates over Time", 
              subtitle = "Only Germany (DE) trends upward from 1927-37") +
         xlab("Year") + ylab("Crude Death Rate\n(per 1,000 population)");


#Create new data frame for differences
DATA_DIFF <- data.frame(Country = c("DE", "FR", "BE", "NL", "DEN", "CH", "AUT", "CZ", "PL"),
                        Change  = as.numeric(DATA_WIDE[11, 2:10] - DATA_WIDE[1, 2:10]));

#Create bar plot
PLOT2 <- ggplot(DATA_DIFF, aes(x = reorder(Country, - Change), y = Change, colour = Country, fill = Country)) + 
         geom_bar(stat = "identity") +
         labs(title = "Bar  Plot: Change in Death Rates from 1927-37", 
              subtitle = "Only Germany (DE) shows an increase in death rate") +
         xlab(NULL) + ylab("Change in crude Death Rate\n(per 1,000 population)");

สิ่งนี้นำไปสู่การแปลงต่อไปนี้:

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

หมายเหตุ:ฉันทราบว่า OP มีวัตถุประสงค์เพื่อเน้นการเปลี่ยนแปลงของอัตราการเสียชีวิตตั้งแต่ปี 1932 เมื่อแนวโน้มในเยอรมนีเริ่มขึ้น ดูเหมือนว่าฉันจะชอบเก็บเชอร์รี่และฉันคิดว่ามันน่าสงสัยเมื่อเลือกช่วงเวลาเพื่อให้ได้เทรนด์ที่เฉพาะเจาะจง ด้วยเหตุนี้ฉันได้ดูช่วงเวลาในช่วงข้อมูลทั้งหมดซึ่งเป็นการเปรียบเทียบที่แตกต่างกับ OP


ขอบคุณสำหรับคำแนะนำของคุณ รูปแบบเป็นงานที่ดำเนินการนี่เป็นเพียงตัวอย่างคร่าวๆของสิ่งที่ฉันต้องการได้รับ)
ปริญญาเอก

1
@ Graipher: ด่างดี (+1) - ฉันจะแก้ไขเมื่อฉันมีเวลามากขึ้น
Reinstate Monica

1
ฉันชอบพล็อตบาร์ แต่แทนที่จะเป็นแกน x ตัวอักษรฉันจะเรียงลำดับตามการเปลี่ยนแปลง
Gregor

14

แม้ว่าวัตถุประสงค์ที่ระบุไว้คือการแสดงการเปลี่ยนแปลง แต่คุณต้องการแสดงซีรีส์เวลารายปีตามประเทศด้วย นั่นแสดงให้เห็นว่าไม่ได้ทำซ้ำกราฟิกอย่างสมบูรณ์ แต่เพียงแค่ปรับเปลี่ยน

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

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

ในที่สุดวิทยานิพนธ์ของคุณเกี่ยวข้องกับข้อมูลหลังจากปี 1932 เราจะต้องการเน้นองค์ประกอบเหล่านั้นของกราฟิกที่เกี่ยวข้องกับคนอื่น ๆ ที่สามารถทำได้โดยการทำให้สีอิ่มตัว

พล็อต

การแก้ปัญหานี้ทันทีให้ข้อมูลเชิงลึกที่ไม่ปรากฏในต้นฉบับ

  • ไม่มีประเทศใดที่มีอัตราการตายเพิ่มขึ้นทุกปีหลังจากปี 1932 ประเทศใด ๆ ก็จะปรากฏเป็นเส้นทึบต่อเนื่อง แต่ไม่มีเส้นดังกล่าวปรากฏขึ้น

  • การเปลี่ยนแปลงส่วนใหญ่น่าจะมาจากปัจจัยร่วมกันของทุกประเทศ สิ่งนี้ปรากฏในความคล้ายคลึงกันของลักษณะเส้นและความหนาภายในคอลัมน์แนวตั้ง ตัวอย่างเช่นในช่วงระยะเวลา 1934-35 อัตราการตายเพิ่มขึ้นในเกือบทุกประเทศที่ในปี 1933-34 พวกเขาลดลงในเกือบทุกประเทศ

  • เยอรมนีเป็นเรื่องผิดปกติเมื่อพบว่ามีอัตราการเสียชีวิตเพิ่มขึ้นอย่างมากในปี 1932-33 และเพิ่มขึ้นเล็กน้อยในปี 1935-36

เหล่านี้ขอแนะนำให้ดำเนินการตรวจสอบข้อเท็จจริงสองทางที่แข็งแกร่งของการเปลี่ยนแปลงในอัตราการเสียชีวิตเมื่อเทียบกับประเทศโดยอาจขัดเฉลี่ยในการสั่งซื้อที่จะเจาะมากขึ้นลึกลงไปในญาติประสิทธิภาพของประเทศในยุโรปในช่วงเวลานี้

หากคุณต้องการเน้นเฉพาะความแตกต่างระหว่าง 2480 และ 2475 เทคนิคที่คล้ายกันสามารถใช้เป็นสัญลักษณ์ส่วนของเส้นทางระหว่างวันที่เหล่านั้น ประเทศเยอรมนีจะโดดเด่น:

แปลง 2


10

Slopegraphs

วิธีหนึ่งที่คุณสามารถนำเสนอข้อมูลของคุณได้คือการใช้ slopegraph ซึ่งเป็นสิ่งที่ดีสำหรับการเปรียบเทียบการเปลี่ยนแปลงหรือการไล่ระดับสี (บางลิงก์: 1 2 )

ด้านล่างนี้คือ

  • ทางด้านซ้ายเป็นตัวอย่างของ slopegraph ที่แสดงให้เห็นว่ากรณีของคุณเป็นเช่นไร

  • ตรงกลางมี slopegraph ที่ซับซ้อนยิ่งขึ้นซึ่งแสดงให้เห็นว่าปี 1932

  • ด้านขวาเป็นรูปแบบต่าง ๆ ของ slopegraph มีเส้นแบบประกายไฟมากขึ้นซึ่งข้อมูลทั้งหมดจะถูกแสดง (หมายถึงไม่มีเส้นตรง)

ฉันไม่แน่ใจว่าอันไหนดีที่สุด ตัวเลือกที่สาม / ขวาให้ความคิดที่แข็งแกร่งเกี่ยวกับรูปแบบที่แตกต่างกันไปในแต่ละปี (และตัวอย่างเช่นมันกลายเป็นชัดเจนมากขึ้นว่า Danmark vs เยอรมนีไม่ได้ดูแตกต่างกันและมันจะขึ้นและลงมากขึ้นทุกปี) ก็จะเสียสมาธิ (โดยเฉพาะอย่างยิ่งยอด 2472) ดังนั้นสิ่งที่ดีกว่าขึ้นอยู่กับสิ่งที่คุณต้องการสื่อด้วยกราฟและรายละเอียดที่เรื่องราวของคุณต้องการ (เช่นช่วงประมาณปี 1932 กับรัฐบาลต่าง ๆ ซึ่งมีความชัดเจนมากขึ้นในตัวเลือกที่สอง / กลาง)

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

กราฟความชันและการแปรผัน

บริบทเพิ่มเติม

หากคุณต้องการเพิ่มความซับซ้อนมากกว่า slopegraph อย่างง่ายฉันเชื่อว่ามันจะเป็นการดีกว่าที่จะแสดงข้อมูลเพิ่มเติมนอกช่วง 1927-1937 มากกว่าในช่วง (ตัวอย่างอีกครั้งโดย Tufte จากหน้า 74-75 ในการแสดงภาพข้อมูลเชิงปริมาณที่คุณสามารถเข้าถึงได้ผ่านทางหน้านี้ในกระดานข่าวบนเว็บไซต์ของเขา)

ตัวอย่างด้านล่างแสดงข้อมูลสำหรับปี 1900-2000 (ไม่รวมโปแลนด์ซึ่งมีข้อมูลที่เป็นบิตยาก) สกัดจากวิกิพีเดีย (เช่นหน้านี้สาธารณรัฐเช็ก ) และวิตเซอร์แลนด์และเนเธอร์แลนด์สำนักงานของพวกเขาสถิติแห่งชาติ ( BFSและStatline )

(ข้อมูลแตกต่างจากของคุณเล็กน้อย แต่เหมือนกับบทความ "Autarchy, การล่มสลายของตลาดและสุขภาพ: การตายและวิกฤตโภชนาการใน Nazi Germany, 1933-1937" โดยJörg Baten และ Andrea Wagner บทความนี้น่าสนใจ อ่านเพราะพวกเขาให้ข้อมูลมากกว่าอัตราการตายอย่างหยาบ ๆ ถึงแม้ว่าพวกเขาจะ จำกัด ตัวเองเป็นช่วงเวลาเล็ก ๆ ที่น่าสนใจโดยเฉพาะอย่างยิ่งที่น่าสนใจคืออัตราการตายที่เพิ่มขึ้นจาก 2475 ถึง 2480 ส่วนใหญ่อยู่ในเมืองแถบจากแฟรงค์เฟิร์ต และฮัมบูร์ก)

บริบทเพิ่มเติม

ฉันเชื่อว่ากราฟนี้มีความสำคัญเพราะมันแสดงให้เห็นว่าเยอรมนีได้ลดลงอย่างมากก่อนที่จะเพิ่มขึ้นหลังจากปี 1932 แข็งแกร่งกว่าประเทศอื่น ๆ ดังนั้นคุณสามารถตีความได้ทั้งเชิงลบและบวก อัตราการตายของเยอรมนีเพิ่มขึ้นมากกว่าประเทศอื่น ๆ ระหว่างปี 1932-1937 แต่นี่เป็น (1) เพิ่มขึ้นจากยอดเขาที่ต่ำหรือ (2) เพิ่มขึ้นสู่ยอดเขาสูงหรือไม่? สิ่งที่น่าสนใจในเรื่องนี้คือระดับ 2475 จาก 10.8 เป็นระดับที่ต่ำมากสำหรับเยอรมนี (ณ จุดนี้มีเพียงเนเธอร์แลนด์เท่านั้นที่มีอัตราการตายต่ำกว่า) นี่ไม่เพียง แต่เป็นระดับต่ำสุดสำหรับปีจนถึงปี 1937 เท่านั้น แต่ยังใช้เวลาจนถึงปี 1995 ก่อนที่จะถึงระดับ 10.8 อีกครั้ง

อีกประเด็นหนึ่งที่เกี่ยวข้องกับสุขภาพ (ถ้านี่คือบริบทของคุณ) มันอาจจะดีกว่าที่จะเปรียบเทียบอายุขัยองค์ประกอบทางประชากรของประชากรมีอิทธิพลต่ออัตราการตายซึ่งเป็นอิสระจากการเปลี่ยนแปลงของสถานการณ์สุขภาพ

บริบทเพิ่มเติมเล็กน้อยน้อย

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

กราฟเชิงบริบทที่เล็กลง


ขอบคุณสำหรับคำแนะนำทั้งหมดของคุณ ฉันคิดว่าภาพสลิปกราฟที่คุณให้นั้นใช้งานง่ายมาก ฉันแน่ใจว่าการรวมช่วงเวลาที่ยาวขึ้นจะเป็นประโยชน์ แต่เราต้องการให้จุดเน้นไปที่ช่วงเวลาที่เฉพาะเจาะจงและทำให้ชัดเจน ฉันคิดว่าพล็อต 1900-2000 น่าจะยุ่งหน่อย เกี่ยวกับประเด็นสุดท้ายของคุณเราปรับอายุอัตราน้ำมันดิบเพื่อให้คงอัตราการตาย
PhDing

1
@Alessandro ฉันได้เพิ่มทางเลือกซึ่งเป็นประโยชน์มากกว่า ตัวเลขต่างกันอีกครั้งเพราะฉันใช้แหล่งข้อมูลที่แตกต่างกัน (ไม่ได้ปรับอายุ) แต่ฉันเดาว่าการลดลงอย่างมากของเยอรมนีตามมาด้วยการเพิ่มขึ้นอย่างมากอาจเหมือนกัน
Sextus Empiricus

4

ขึ้นอยู่กับผู้ชม แต่ฉันจะทำให้สิ่งต่าง ๆ ง่ายขึ้น:

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

จากนั้นสะกดมันออกมาในคำบรรยายภาพเช่น

จากปี 1932-37 ปีอัตราการเสียชีวิตเพิ่มขึ้นในประเทศเยอรมนีในขณะที่มันลดลงโดยรวมทั่วยุโรปกลาง (ฝรั่งเศส, เบลเยียม, เนเธอร์แลนด์, เดนมาร์ก, ออสเตรีย, สาธารณรัฐเช็ก, โปแลนด์)

(BTW ch vs. cz คืออะไรฉันอยู่ประเทศไหนหายไป?)

แน่นอนว่าคุณจะต้องประเมินน้ำหนักdeath rateประชากรโดยประมาณเมื่อ 'รวม' กับ 'ผู้อื่น' แต่ฉันแน่ใจว่าข้อมูลนี้พร้อมให้คุณใช้งาน

Update 6/9/18: แน่นอนว่าเป็นร่างของ 'ของเล่น' และไม่ได้มาจากข้อมูล แนวคิดคือการจัดทำร่างคร่าวๆของแบบฟอร์มที่กราฟควรใช้

OyOi=1...88×

Oyi=i=8i=1ADRyi.populationitotalPopulation

หรือดีกว่าถ้าคุณมีข้อมูลประชากร สำหรับแต่ละปี:

Oyi=i=8i=1ADRyi.populationyitotalPopulationy

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


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

ฉันชอบคำตอบนี้ แต่ฉันอาจเพิ่มภาพของช่วงหรือส่วนเบี่ยงเบนมาตรฐานรอบบรรทัด 'others' มิฉะนั้นหมายความว่าอาจเป็นการหลอกลวง
Tasos Papastylianou

2
ฉันชอบความคิดนี้มาก - แต่คุณช่วยอธิบายได้ว่าคุณกำหนดอัตราการตายของ "คนอื่น" ได้อย่างไร? วิธีการทางคณิตศาสตร์ของอัตราของพวกเขาจะไม่เหมาะสมเนื่องจากประชากรที่แตกต่างกันอย่างกว้างขวางพวกเขาเป็นตัวแทน
whuber

3

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

การใช้ข้อมูลของคุณเช่นเดียวกับdใน R:

library(tidyverse)
d2 <- data.frame(apply(d[-1],2,diff))
d2$year <- d$year[-1]
d2 %>% gather(key="country",value=deathrate,-year) %>% 
   ggplot(aes(x=factor(year),y=country,fill=deathrate)) + 
   geom_tile() + 
   scale_fill_gradient2("\u0394 deathrate")

heatmap ความตาย

โปรดทราบว่าขณะนี้ข้อมูลมีการเปลี่ยนแปลงจากปีก่อน คุณจะเห็นว่าเยอรมนีมีกลุ่มของ blues (เพิ่มขึ้นในอัตราตาย) หลังจาก 1932 ที่ประเทศอื่นไม่มี คุณสามารถเห็นได้ว่าระหว่างปีพ. ศ. 2477 และ 2478 ทุกประเทศยกเว้นโปแลนด์เห็นการเพิ่มขึ้นของอัตราการตาย แต่แนวโน้มการลดลงของเยอรมนีดูเหมือนจะอยู่ที่ 2475-2476 และ 2478-2479 (เช่นเดียวกับ 2470-2471)

หนึ่งในคุณสมบัติที่น่าสนใจคือความจริงที่ว่าสีมีความเข้มกว่าด้านซ้ายเมื่อเทียบกับด้านขวา ซึ่งหมายความว่าขนาดของการเปลี่ยนแปลงจะสูงขึ้นในช่วงเริ่มต้นของช่วงเวลาและปิดเสียงมากขึ้นในตอนท้าย

ฉันขอแนะนำให้จับคู่กับกราฟเส้นที่แสดงระดับด้วย


2

ที่นี่ฉันแสดงให้คุณเห็นความแตกต่างของลอการิทึมของอัตราส่วนการเสียชีวิตต่อผู้อยู่อาศัย 1,000 คนโดยคำนึงถึงปีก่อนหน้า (1927 จึงไม่ปรากฏขึ้น) ประเทศเยอรมนีจะแสดงเป็นสีแดงในขณะที่ค่าเฉลี่ยของประเทศอื่น ๆ จะแสดงเป็นเส้นสีดำหนา

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

เยอรมนีมีอัตราส่วนเพิ่มขึ้นใน 5 ใน 10 ปี หลังจากปี 1932 มันพูดมากกว่าค่าเฉลี่ยของประเทศอื่น ๆ (และส่วนใหญ่เป็นบวก) จนถึงปี 1937

แม้ว่าทำไมลอการิทึม เหตุผลนั้นง่าย: การเปลี่ยนจาก 2 เป็น 1 นั้นรุนแรงกว่าการเปลี่ยนจาก 1,000 เป็น 999 :)


รหัส:

x = read.table("clipboard", header = TRUE, dec = ".")
xl = log(x[-1])
xd = apply(xl, 2L, diff)

png("CVquestion.png")
plot(0,0, xlim = range(x[-1,1]), ylim = range(xd), type = "n", ylab = "", main = "Difference of the log(death rate per 1000 inhab.)", xlab = "year")
grid()
for (i in rev(seq(ncol(xl)))) lines(x[-1,1], xd[,i], type = "o", col = adjustcolor(ifelse(i == 1, 2, 1), 0.7), lwd = ifelse(i == 1, 2, 1), lty = ifelse(i == 1, 1, 2), pch = ifelse(i == 1,16,NA))
lines(x[-1,1], rowMeans(xd[,-1]), type = "o", col = adjustcolor(1, 0.7), lwd = 2, lty = 1, pch = 16)

text(x = 1937, y = rev(xd[10,]), label = rev(colnames(xd)), col = rev(c(2, rep(1,8))))
dev.off()

2
OP พูดถึงอัตราการตายไม่ใช่อัตราการฆาตกรรม
kjetil b halvorsen

@kjetilbhalvorsen Ooops นั่นคือสิ่งที่เกิดขึ้นเมื่อคุณลองสร้างภาพข้อมูล ณ เวลา 21.00 น. ในวันที่คุณทำงานมาตั้งแต่ 8 โมงเช้าฮ่าฮ่า จะแก้ไขโดยเร็วขอบคุณสำหรับหัว :) :)
Firebug

1

อีกหนึ่งเวอร์ชัน: อัตราส่วน (หมายถึงอัตราการตายจาก 1927 ถึงปีปัจจุบัน) / (อัตราตาย 1927)

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

ทำด้วยรหัส Mathematica

data = {
 {year,   de,   fr,   be,   nl,  den,   ch,  aut,   cz,   pl},
 {1927, 10.9, 16.5, 13.0, 10.2, 11.6, 12.4, 15.0, 16.0, 17.3},
 {1928, 11.2, 16.4, 12.8,  9.6, 11.0, 12.0, 14.5, 15.1, 16.4},
 {1929, 11.4, 17.9, 14.4, 10.7, 11.2, 12.5, 14.6, 15.5, 16.7},
 {1930, 10.4, 15.6, 12.8,  9.1, 10.8, 11.6, 13.5, 14.2, 15.6},
 {1931, 10.4, 16.2, 12.7,  9.6, 11.4, 12.1, 14.0, 14.4, 15.5},
 {1932, 10.2, 15.8, 12.7,  9.0, 11.0, 12.2, 13.9, 14.1, 15.0},
 {1933, 10.8, 15.8, 12.7,  8.8, 10.6, 11.4, 13.2, 13.7, 14.2},
 {1934, 10.6, 15.1, 11.7,  8.4, 10.4, 11.3, 12.7, 13.2, 14.4},
 {1935, 11.4, 15.7, 12.3,  8.7, 11.1, 12.1, 13.7, 13.5, 14.0},
 {1936, 11.7, 15.3, 12.2,  8.7, 11.0, 11.4, 13.2, 13.3, 14.2},
 {1937, 11.5, 15.0, 12.5,  8.8, 10.8, 11.3, 13.3, 13.3, 14.0}
}

ListPlot[
 Map[
  Table[{First[data[[k + 1]]], Mean[Take[#, k]]/First[#]}, {k, Length[#]}] &,
  Map[Rest, Rest[Transpose[data]]]
 ],
 Joined -> True,
 PlotRange -> All,
 Frame -> True,
 FrameTicks -> {Map[First, Rest[data]], Automatic},
 PlotLabels -> Rest[First[data]],
 AxesOrigin -> {First[First[Rest[data]]], 1} 
]

(ยอดในปี 1929 ดูเหมือนจะเกี่ยวข้องกับการระบาดใหญ่ของไข้หวัดที่เกิดขึ้นในช่วงเวลานั้น)

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