Làm thế nào để vẽ đúng xu hướng


45

Tôi đang tạo một biểu đồ để hiển thị xu hướng tỷ lệ tử vong (trên 1000 ppl.) Ở các quốc gia khác nhau và câu chuyện bắt nguồn từ cốt truyện là Đức (đường màu xanh nhạt) là người duy nhất có xu hướng tăng sau năm 1932. Đây là lần thử đầu tiên (cơ bản) của tôi

nhập mô tả hình ảnh ở đây

Theo tôi, biểu đồ này đã hiển thị những gì chúng tôi muốn nó nói nhưng nó không siêu trực quan. Bạn có gợi ý nào để làm rõ hơn sự khác biệt giữa các xu hướng không? Tôi đã nghĩ đến âm mưu tăng trưởng nhưng tôi đã cố gắng và nó không tốt hơn.

Dữ liệu như sau

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
Dữ liệu từ Ý và Tây Ban Nha sẽ rất thú vị khi so sánh. Họ cũng có các chính phủ phe phái trong khoảng thời gian đó.
asmaier

1
bên cạnh những ý tưởng hay được đưa ra trong các câu trả lời, vui lòng đảm bảo bắt đầu âm mưu của bạn ở 0 (trục y) để mức độ thay đổi tương đối rõ ràng hơn.
WoJ

2
@WoJ Tôi thấy quan điểm của bạn, nhưng trong thực tế, phạm vi là từ khoảng 9 đến khoảng 18 trên 1000, vì vậy một nửa không gian đồ thị sẽ được sử dụng cho thấy tỷ lệ tử vong không bằng không. Tôi nghĩ đó là lý do tại sao hầu hết mọi người (bao gồm cả bản thân tôi) không muốn làm điều đó trong câu trả lời của họ cho đến nay. Xem xét nơi tiêu chí của bạn dừng lại, ví dụ bạn có muốn khẳng định rằng các lô biến thể lịch sử về chiều cao của người trưởng thành đều bắt đầu từ 0 không? Thảo luận thêm tại ví dụ: stats.stackexchange.com/questions/184525/ Kẻ
Nick Cox

1
Thay vì suy nghĩ về biểu đồ, trước tiên tôi sẽ tự hỏi điều gì nằm dưới dữ liệu và phân tích. Những yếu tố liên quan đến tỷ lệ tử vong? Tỷ lệ tử vong có giảm nhanh hơn nếu nó đã cao (ví dụ Ba Lan)? Làm tỷ lệ tử vong cao nguyên ở một số cấp độ? Liệu hiệu ứng cao nguyên này (mạnh hơn đối với Đức) có thể làm cho sự gia tăng đối với Áo (trong vài năm qua) có tác dụng mạnh hơn? Biểu đồ là loại dữ liệu thô (vẫn cần phải phân tích) và đồng thời nó được dẫn xuất (các số không phải là phép đo đơn giản nhưng xuất phát) điều này làm cho việc làm nổi bật 1 hiệu ứng trở nên khó khăn.
Sextus Empiricus

1
Ngoài ra, bạn tốt hơn cho thấy một khoảng thời gian lớn hơn chỉ 10 năm. Sự tập trung vào mười năm này chỉ công bằng khi bạn thể hiện môi trường xung quanh. Rất phổ biến để xem cận cảnh mà ít ý nghĩa hơn trong một viễn cảnh rộng hơn. Khi những đường cong này lên xuống như những cơn sóng trong cơn bão, thì bạn phải thể hiện toàn bộ vùng biển và không chỉ một con sóng duy nhất xảy ra tương quan với một câu chuyện hay. (Tôi chắc chắn có một ví dụ của Tufte cho thấy nguyên tắc này)
Sextus Empiricus

Câu trả lời:


53

Đôi khi ít lại hơn. Với ít chi tiết hơn về các biến thể theo từng năm và sự khác biệt về quốc gia, bạn có thể cung cấp thêm thông tin về các xu hướng. Vì các quốc gia khác đang di chuyển chủ yếu cùng nhau, bạn có thể nhận được mà không có màu riêng biệt.

Khi sử dụng mượt mà hơn, bạn cần người đọc tin tưởng rằng bạn đã không bị làm mờ đi bất kỳ biến thể thú vị nào.

nhập mô tả hình ảnh ở đây

Cập nhật sau khi nhận được một vài yêu cầu mã :

Tôi đã thực hiện điều này trong Trình tạo biểu đồ tương tác của JMP . Kịch bản JMP là:

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
Theo kinh nghiệm của tôi, loạt làm mịn là một thực hành rất hiếm trong khoa học xã hội.
luchonacho

6
Có lẽ đó là một lý do để cho họ thấy một cái gì đó mới và hữu ích?
kjetil b halvorsen

9
Bất kể các chuẩn mực trong khoa học xã hội, tôi thấy sự thông suốt che giấu sự sụt giảm xảy ra vào năm 1930 và sự gia tăng xảy ra vào năm 1935. Sự tăng đột biến ở nhiều quốc gia xảy ra vào năm 1929 cũng bị che khuất. Mặt khác, tôi thích cách tiếp cận đơn giản này rất nhiều.
Underminer

7
+1 khi chỉ sử dụng hai màu (có lẽ làm cho màu xám thậm chí nhạt hơn?) Và tránh truyền thuyết bằng cách đặt tên quốc gia ở bên phải. -1 để làm mịn, loại bỏ thông tin không có lý do chính đáng. Vì vậy, tôi không cần phải thực sự bỏ phiếu ;-)
S. Kolassa - Tái lập Monica

10
@StephanKolassa Tôi nghĩ điểm xan là có một lý do chính đáng để thông tin loại bỏ: tập trung vào các xu hướng tổng thể, chứ không phải là năm này sang năm khác biến "tiếng ồn". Ở một mức độ nào đó, bạn đã "loại bỏ thông tin" - bạn đang xem số hàng năm. Tôi nghi ngờ biểu đồ sẽ được cải thiện bằng cách vẽ tỷ lệ hàng ngày, đó là nơi "không loại bỏ thông tin" đưa bạn, quảng cáo vô lý . - Đúng là một số xu hướng bị che khuất bởi sự trơn tru, nhưng những xu hướng khác (như biến đổi theo mùa) bị che khuất bởi sự lựa chọn của tỷ lệ hàng năm. Có một số niềm tin liên quan đến sự thay đổi có liên quan vẫn đang được hiển thị.
RM

39

1100100

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)

nhập mô tả hình ảnh ở đây

Ngược lại, dưới đây là một biểu đồ tương ứng của dữ liệu theo cấp độ. Tuy nhiên, tôi đã cố gắng làm cho có thể thấy rằng một mình Đức đi lên sau năm 1932 theo hai cách: Tôi đặt một điểm nổi bật trên mỗi loạt vào năm 1932, và vẽ một đường màu xám mờ trên cốt truyện ở các mức đó.

nhập mô tả hình ảnh ở đây


+1 giải pháp thực sự tuyệt vời
Repmat

2
Có đủ không gian để mất huyền thoại (tiêu diệt khóa) và gắn nhãn cho mỗi đường cong trực tiếp trong phần thân của biểu đồ.
Nick Cox

3
Có rất nhiều cách để làm cho mã & cốt truyện đẹp hơn. Quan điểm chính của tôi ở đây là phân biệt các ý tưởng về mức độ và thay đổi, và cung cấp một minh chứng cơ bản về cách thay đổi có thể được hình dung.
gung - Phục hồi Monica

17

Có nhiều ý tưởng hay ở đây trong các câu trả lời khác, nhưng chúng không làm cạn kiệt các giải pháp tốt có thể. Biểu đồ đầu tiên trong câu trả lời này đưa ra rằng các mức độ tử vong khác nhau có thể được thảo luận và giải thích riêng. Khi cho phép mỗi sê-ri lấp đầy phần lớn không gian có sẵn, nó tập trung sự chú ý của độc giả vào các mô hình thay đổi tương đối.

Thứ tự chữ cái theo quốc gia thường là một mặc định dopey, và không được nhấn mạnh ở đây. Một cách ngẫu nhiên, và may mắn thay, Đức như de nằm ở trung tâm của màn hình 3 x 3 này. Một câu chuyện đơn giản - Nhìn kìa! Mô hình của Đức là đặc biệt với một xu hướng tăng từ năm 1932 - được thực hiện và hợp lý.

nhập mô tả hình ảnh ở đây

Một cách ngẫu nhiên, nhưng may mắn thay, 9 quốc gia đủ để biện minh cho việc thử các bảng riêng biệt, nhưng không quá nhiều để làm cho thiết kế đó không thể thực hiện được (với 30 và chắc chắn 300 bảng, có thể (sẽ) có quá nhiều bảng để quét, với mỗi bảng quá nhỏ xem xét kỹ lưỡng).

Rõ ràng, có rất nhiều không gian ở đây cho các tên quốc gia đầy đủ hơn. (Trong một số câu trả lời khác, truyền thuyết chiếm một phần lớn không gian có sẵn, trong khi vẫn còn một chút khó hiểu. Trong thực tế, những người quan tâm đến dữ liệu đó sẽ dễ dàng giải mã các từ viết tắt của quốc gia, nhưng thường thì truyền thuyết cần bao xa vấn đề gây phiền nhiễu trong thiết kế đồ họa.)

Mã Stata cho hồ sơ:

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)

BIÊN TẬP:

Một cải tiến đơn giản của biểu đồ này được đề xuất bởi Tim Morris là làm nổi bật năm xảy ra tối đa:

nhập mô tả hình ảnh ở đây

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)  

EDIT 2 (sửa đổi để hiển thị mã đơn giản hơn):

Ngoài ra, thiết kế tiếp theo này hiển thị từng loạt riêng biệt, nhưng mỗi lần với loạt khác làm nền. Ý tưởng chung được thảo luận trong chủ đề liên quan này .

nhập mô tả hình ảnh ở đây

Có mất mát cũng như đạt được ở đây. Trong khi mỗi loạt có thể dễ dàng được nhìn thấy hơn trong bối cảnh của những người khác, không gian bị mất bởi sự lặp lại.

Mã Stata cho hồ sơ:

(Mã để input, reshape, renamenhư trên trong câu trả lời này)

* 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được hiểu là âm mưu của acont fhay foreground and backdrop hay background, không phải là tiếng vang của tiếng lóng năm 1960 cho "tuyệt vời".


3
+1, tôi phải nói rằng, mã này khá ngắn gọn để tạo ra một cốt truyện đẹp như thế.
gung - Phục hồi Monica

@gung Cảm ơn. Bất kỳ lời khen ngợi nào ở đây đều xứng đáng với StataCorp vì đây là những lệnh sẵn có. Về mặt thẩm mỹ, tôi đang hạ gục một số văn bản mặc định, ví dụ yearnhư tiêu đề trục x (ai cần điều đó?). Tôi sẽ thêm điều đó cho người dùng Stata, cấu trúc dữ liệu tự nhiên sẽ là cấu trúc không bắt buộc a renamereshape. nhưng có các bảng riêng biệt (ở đây là các quốc gia) như các khối quan sát riêng biệt.
Nick Cox

+1 Tuy nhiên, một đặc điểm có vấn đề của giải pháp này là nó mất bối cảnh: chúng ta không thể dễ dàng thấy rằng mặc dù tỷ lệ tử vong của Đức đã tăng lên, nhưng nó bắt đầu ở mức thấp và cuối cùng vẫn không cao.
whuber

1
Thiết kế thay thế trong EDIT 2 là một cách để giải quyết điểm chính được thực hiện bởi @whuber về bối cảnh.
Nick Cox

15

Biểu đồ của bạn là hợp lý, nhưng nó sẽ yêu cầu một số tinh chỉnh, bao gồm tiêu đề, nhãn trục và nhãn quốc gia hoàn chỉnh. Nếu mục tiêu của bạn là nhấn mạnh thực tế rằng Đức là quốc gia duy nhất có tỷ lệ tử vong tăng trong thời gian quan sát thì một cách đơn giản để làm điều này là làm nổi bật dòng này trong cốt truyện, bằng cách sử dụng một dòng dày hơn, khác dòng trong suốt, hoặc độ trong suốt alpha. Bạn cũng có thể tăng cốt truyện theo chuỗi thời gian của mình bằng một biểu đồ vạch cho thấy sự thay đổi về tỷ lệ tử vong theo thời gian, do đó độ phức tạp của các dòng chuỗi thời gian được giảm xuống thành một thước đo thay đổi.

Đây là cách bạn có thể tạo ra các lô này bằng cách sử dụng ggplottrong 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)");

Điều này dẫn đến các lô sau:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Lưu ý: Tôi biết rằng OP dự định làm nổi bật sự thay đổi tỷ lệ tử vong kể từ năm 1932, khi xu hướng ở Đức bắt đầu đi lên. Điều này đối với tôi hơi giống với việc hái anh đào, và tôi thấy thật đáng ngờ khi khoảng thời gian được chọn để có được một xu hướng cụ thể. Vì lý do này, tôi đã xem xét khoảng trên toàn bộ phạm vi dữ liệu, đây là một so sánh khác với OP.


Cảm ơn lời đề nghị của bạn. Định dạng là một công việc đang tiến triển, đây chỉ là một ví dụ sơ bộ về những gì tôi muốn nhận được;)
Tiến sĩ

1
@Graodes: Phát hiện tốt (+1) - Tôi sẽ chỉnh sửa khi tôi có thêm một chút thời gian.
Phục hồi Monica

1
Tôi thích cốt truyện thanh, nhưng thay vì trục x theo thứ tự chữ cái, tôi sẽ sắp xếp theo sự thay đổi.
Gregor

14

Mặc dù mục tiêu đã nêu là hiển thị các thay đổi, nhưng rõ ràng bạn cũng muốn hiển thị chuỗi thời gian hàng năm theo quốc gia. Điều đó cho thấy không hoàn toàn làm lại đồ họa, mà chỉ sửa đổi nó.

Vì một thay đổi liên quan đến những gì xảy ra từ năm này sang năm tiếp theo, bạn có thể xem xét việc thể hiện các thay đổi bằng các biểu tượng đồ họa kéo dài nhiều năm liên tiếp: đó là các phân đoạn dòng kết nối các điểm dữ liệu trong lô.

Vì màu sắc rất hữu ích để phân biệt các quốc gia và mặt khác không tốt trong việc chỉ ra các biến định lượng, điều đó khiến chúng ta chỉ có hai đặc điểm khác có thể thay đổi để biểu thị sự thay đổi: kiểu dáng và độ dày của các phân đoạn. Vì luận án của bạn liên quan đến thay đổi tích cực, bạn sẽ muốn làm cho các phân đoạn dòng để tăng sự nổi bật hơn: phong cách của chúng nên liên tục hơn và chúng phải dày hơn.

Cuối cùng, luận án của bạn liên quan đến dữ liệu sau năm 1932. Chúng tôi sẽ muốn nhấn mạnh những yếu tố của đồ họa so với các yếu tố khác. Điều đó có thể được thực hiện bằng cách bão hòa màu sắc.

Âm mưu

Giải pháp này ngay lập tức cung cấp những hiểu biết chưa rõ ràng trong bản gốc:

  • Không có quốc gia nào trải qua sự gia tăng tỷ lệ tử vong hàng năm trong tất cả các năm sau năm 1932. Bất kỳ quốc gia nào như vậy sẽ xuất hiện dưới dạng một đường liền mạch liên tục, nhưng không có dòng nào như vậy.

  • Phần lớn sự thay đổi phải được quy cho các yếu tố chung cho tất cả các quốc gia. Điều này là rõ ràng trong sự tương đồng của kiểu đường và độ dày trong các cột dọc. Ví dụ, trong giai đoạn 1934 - 35, tỷ lệ tử vong tăng ở hầu hết các quốc gia, trong đó vào năm 1933-34, họ đã giảm ở hầu hết các quốc gia.

  • Đức đã bất thường khi trải qua một sự gia tăng lớn về tỷ lệ tử vong trong 1932-33 và cũng tăng nhẹ trong 1935-36.

Những đề xuất này thực hiện một cuộc thăm dò hai chiều mạnh mẽ về sự thay đổi tỷ lệ tử vong so với quốc gia, có lẽ bằng cách đánh bóng trung bình, để thâm nhập sâu hơn vào hiệu suất tương đối của các nước châu Âu trong giai đoạn này.

Nếu bạn chỉ muốn nhấn mạnh sự khác biệt giữa năm 1937 và 1932, một kỹ thuật tương tự có thể được sử dụng để tượng trưng cho các phần của các đường dẫn giữa những ngày đó. Đức sẽ nổi bật:

Lô 2


10

Máy chiếu

Một cách mà bạn có thể trình bày dữ liệu của mình là sử dụng máy chiếu ảnh đặc biệt tốt để so sánh các thay đổi hoặc độ dốc (một số liên kết: 1 2 )

Dưới là

  • Ở bên trái một ví dụ về một slopegraph cho thấy điều này trông như thế nào cho trường hợp của bạn.

  • Ở trung tâm một máy chiếu hình phức tạp hơn cũng cho thấy năm 1932

  • Ở bên phải một biến thể của slopegraph, thêm một loại biểu đồ thu nhỏ, trong đó tất cả dữ liệu được hiển thị (có nghĩa là không có đường thẳng).

Tôi không chắc chắn cái nào là tốt nhất. Tùy chọn thứ ba / bên phải cung cấp một ý tưởng mạnh mẽ hơn về các biến thể từ năm này sang năm khác (và ví dụ, có thể thấy rõ hơn rằng Danmark vs Đức trông không quá khác biệt và nó sẽ tăng giảm rất nhiều từ năm này sang năm khác) nhưng nó có thể cũng gây mất tập trung (đặc biệt là đỉnh 1929). Vì vậy, cái nào tốt hơn phụ thuộc vào những gì bạn muốn truyền đạt với biểu đồ và mức độ chi tiết câu chuyện của bạn (ví dụ: xoay quanh năm 1932 với chính phủ khác nhau rõ ràng hơn trong tùy chọn thứ hai / giữa).

Sự biến đổi của slopegraph bên phải trông giống như biểu đồ của Xan. Tuy nhiên, bên cạnh sự khác biệt về phong cách còn có một sự khác biệt quan trọng hơn. Chiều rộng và chiều cao của hình được chọn sao cho góc của các đường cong gần 45 độ. Theo cách này, sự khác biệt trở nên nổi bật hơn (tôi tin rằng ví dụ tốt nhất là ví dụ về vết đen mặt trời của Edward Tufte )

đồ thị độ dốc và một biến thể

Thêm bối cảnh

Nếu bạn muốn thêm độ phức tạp hơn so với máy chiếu đơn giản, thì tôi tin rằng thực sự tốt hơn để hiển thị nhiều dữ liệu ngoài phạm vi 1927-1937 hơn trong phạm vi. (một lần nữa là một ví dụ của Tufte từ các trang 74-75 trong Hiển thị trực quan thông tin số lượng mà bạn có thể truy cập thông qua trang này trên bảng thông báo trên trang web của mình)

Ví dụ dưới đây dữ liệu chương trình cho các năm 1900-2000 (trừ Ba Lan có dữ liệu là một chút khó khăn) được chiết xuất từ wikipedia (ví dụ trang này cho Cộng hòa Séc ) và Thụy Sĩ và Hà Lan văn phòng quốc gia của họ về thống kê ( BFSStatline ).

(Dữ liệu hơi khác so với dữ liệu của bạn nhưng cũng giống như bài viết "Chế độ quân chủ, sự tan rã thị trường và sức khỏe: Cuộc khủng hoảng về dinh dưỡng và tử vong ở Đức Quốc xã, 1933-1937" của Jörg Baten và Andrea Wagner. để đọc vì họ cung cấp nhiều dữ liệu hơn chỉ là tỷ lệ tử vong thô, mặc dù họ cũng tự giới hạn trong một khoảng thời gian nhỏ. Đặc biệt thú vị là sự gia tăng tỷ lệ tử vong, từ 1932 đến 1937, chủ yếu tồn tại ở các thành phố trong dải từ Frankfurt đến Bremen và Hamburg)

thêm bối cảnh

Tôi tin rằng biểu đồ này rất quan trọng vì nó cho thấy Đức đã giảm rất mạnh trước khi tăng sau năm 1932. Mạnh hơn các nước khác. Vì vậy, bạn có thể có những diễn giải tiêu cực và tích cực. Tỷ lệ tử vong của Đức đã tăng nhiều hơn các quốc gia khác trong giai đoạn 1932-1937, nhưng liệu đây có phải là (1) tăng từ đỉnh thấp hay (2) tăng lên đến đỉnh cao? Một khía cạnh thú vị trong vấn đề này là mức 1932 là 10,8 là mức rất thấp đối với Đức (tại thời điểm này chỉ có Hà Lan có tỷ lệ tử vong thấp hơn). Đây không chỉ là mức thấp nhất trong những năm cho đến năm 1937, mà còn phải đến năm 1995 trước khi mức 10.8 này đạt được một lần nữa.

Một điểm khác, liên quan đến sức khỏe (nếu đây là bối cảnh của bạn) có thể tốt hơn để so sánh tuổi thọ, thành phần nhân khẩu học của dân số có ảnh hưởng đến tỷ lệ tử vong, không phụ thuộc vào sự thay đổi của tình hình sức khỏe

Bối cảnh ít hơn một chút

Biểu đồ trên cho thấy toàn bộ nhưng có thể là quá mức cho hầu hết các mục đích (ngoại trừ trong bài đăng này, nơi tôi muốn hiển thị toàn bộ lịch sử và nó nhiều hơn cho mục đích khám phá). Biểu đồ dưới đây là một sự thay thế mà tôi tin rằng vẫn còn tốt.

đồ thị ngữ cảnh nhỏ hơn


Cảm ơn tất cả đề xuất của bạn. Tôi nghĩ rằng các slopegraph bạn cung cấp là rất trực quan. Tôi chắc chắn rằng bao gồm một khoảng thời gian dài hơn sẽ hữu ích nhưng chúng tôi muốn tạo một điểm tập trung vào khoảng thời gian cụ thể này và làm cho nó rõ ràng. Tôi nghĩ rằng cốt truyện 1900-2000 sẽ hơi lộn xộn. Về điểm cuối cùng của bạn, chúng tôi điều chỉnh theo tỷ lệ thô để tiếp tục sử dụng tỷ lệ tử vong.
Tiến sĩ

1
@Alessandro Tôi đã thêm một giải pháp thay thế thực tế hơn. Một lần nữa, các con số khác nhau bởi vì tôi đã sử dụng các nguồn khác nhau (không điều chỉnh độ tuổi) nhưng tôi đoán rằng sự suy giảm mạnh mẽ của Đức theo sau sự gia tăng mạnh mẽ có thể là như nhau.
Sextus Empiricus

4

Phụ thuộc vào khán giả, nhưng tôi sẽ đơn giản hóa mọi thứ:

nhập mô tả hình ảnh ở đây

Sau đó đánh vần nó trong chú thích, vd

Từ năm 1932-37, tỷ lệ tử vong hàng năm tăng ở Đức, trong khi nó giảm xuống khắp Trung Âu (Pháp, Bỉ, Hà Lan, Đan Mạch, Áo, Cộng hòa Séc, Ba Lan).

(BTW ch so với cz tức là tôi đang thiếu quốc gia nào ở trên?)

Để được kỹ lưỡng, tất nhiên bạn sẽ cần phải cân nhắc death rateước tính dân số khi 'gộp' cái này cho 'Những người khác', nhưng tôi chắc chắn rằng thông tin này có sẵn cho bạn.

Cập nhật 6/9/18: Đây tất nhiên là bản phác thảo 'đồ chơi' và không được lấy từ dữ liệu; ý tưởng là cung cấp một bản phác thảo sơ bộ của biểu đồ nên có.

ÔiyÔiTôi= =1 ... 8số 8×

ÔiyTôi= =ΣTôi= =số 8Tôi= =1MộtCƯỜI MỞ MIỆNGRyTôi.popbạntôimộttTôioviết sai rồiTôitotmộttôiPopbạntôimộttTôioviết sai rồi

hoặc tốt hơn, nếu bạn có thông tin dân số. cho mỗi năm:

ÔiyTôi= =ΣTôi= =số 8Tôi= =1MộtCƯỜI MỞ MIỆNGRyTôi.popbạntôimộttTôioviết sai rồiyTôitotmộttôiPopbạntôimộttTôioviết sai rồiy

Tùy thuộc vào độc giả (ví dụ nhà dịch tễ học so với nhà sử học), độ lệch chuẩn hoặc lỗi tiêu chuẩn có thể được thêm vào sau, mặc dù tôi nghĩ rằng điều này sẽ làm hỏng giao diện đơn giản của cốt truyện.


5
chlà Thụy Sĩ. (Và BTW, đó chưa phải là Cộng hòa Séc trong những năm 30.) - Điều tôi không thích về cách tiếp cận của bạn là không rõ ràng rằng xu hướng giảm là nhất quán ở các quốc gia khác. Nó có thể xuất hiện như thể chỉ có những biến động ngẫu nhiên xảy ra ở mức trung bình đối với một điều gì đó tiêu cực ở các quốc gia khác, nhưng lại trở nên tích cực ở Đức.
rẽ trái

Tôi thích câu trả lời này, nhưng tôi có thể thêm một hình ảnh về phạm vi hoặc độ lệch chuẩn xung quanh dòng 'của người khác', nếu không, có nghĩa là có thể lừa dối.
Tasos Papastylianou

2
Tôi rất thích ý tưởng này - nhưng bạn có thể vui lòng giải thích cách bạn xác định tỷ lệ tử vong của "người khác" không? Các phương tiện số học của tỷ lệ của họ sẽ không phù hợp do dân số khác nhau mà họ đại diện.
whuber

3

Nếu bạn muốn làm nổi bật sự thay đổi, thì có lẽ tính toán cái này và hiển thị cái kia. Sử dụng bản đồ nhiệt để hiển thị các thay đổi có thể hữu ích vì nó cho phép so sánh được thực hiện mà không cần đặt quá nhiều vấn đề và tránh các vấn đề nội suy có thể đến từ biểu đồ đường.

Sử dụng dữ liệu của bạn như dtrong 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")

sơ đồ nhiệt

Lưu ý rằng dữ liệu hiện đang thay đổi so với năm trước. Bạn có thể thấy rằng Đức có một nhóm nhạc blues (tăng tỷ lệ tử vong) sau năm 1932 mà các quốc gia khác không có. Bạn cũng có thể thấy rằng từ năm 1934 đến 1935, tất cả các quốc gia ngoại trừ Ba Lan đều có tỷ lệ tử vong tăng, nhưng xu hướng của Đức dường như là 1932-1933 và 1935-1936 (cũng như 1927-1928).

Một đặc điểm thú vị là màu sắc đậm hơn bên trái so với bên phải. Điều này có nghĩa là mức độ thay đổi cao hơn vào đầu giai đoạn và bị tắt tiếng nhiều hơn vào cuối.

Tôi cũng khuyên bạn nên kết hợp điều này với biểu đồ đường hiển thị các cấp độ.


2

Ở đây tôi cho bạn thấy sự khác biệt của logarit của tỷ lệ tử vong trên 1000 cư dân, liên quan đến năm trước (do đó năm 1927 không được hiển thị). Đức được hiển thị màu đỏ trong khi trung bình của các quốc gia khác được hiển thị trong dòng màu đen dày.

nhập mô tả hình ảnh ở đây

Đức đã tăng tỷ lệ trong 5 trên 10 năm. Sau năm 1932, nó nói trên mức trung bình của các quốc gia khác (và chủ yếu là tích cực), cho đến năm 1937.

Mặc dù tại sao logarit? Lý do rất đơn giản: thay đổi từ 2 thành 1 quyết liệt hơn thay đổi từ 1000 thành 999 :)


Mã số:

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 nói về tỷ lệ tử vong chứ không phải tỷ lệ giết người
kjetil b halvorsen

@kjetilbhalvorsen Ooops, đó là những gì xảy ra khi bạn thử trực quan hóa dữ liệu vào lúc 9 giờ tối trong một ngày bạn làm việc kể từ 8 giờ sáng haha. Sẽ sửa chữa càng sớm càng tốt, cảm ơn vì đã ngẩng cao đầu :)
Fireorms

1

Thêm một phiên bản: tỷ lệ (tỷ lệ tử vong trung bình từ năm 1927 đến năm hiện tại) / (tỷ lệ tử vong 1927)

nhập mô tả hình ảnh ở đây

Đã hoàn thành với mã Mathicala

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} 
]

(Đỉnh điểm năm 1929 dường như có liên quan đến đại dịch cúm xảy ra vào khoảng thời gian đó)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.