Statisticians generally regard pie charts as a poor method of displaying information, and they are uncommon in scientific literature. One reason is that it is more difficult for comparisons to be made between the size of items in a chart when area is used instead of length and when different items are shown as different shapes

Motivations

Pie Chart là một kiểu biểu đồ dễ thiết kế và bị lạm dụng - sử dụng tùy tiện. Loại biểu đồ này có nhiều nhược điểm và không dễ sử dụng thậm chí nhiều data visualizers còn cho rằng nên từ bỏ việc sử dụng loại biểu đồ này. Những lí do được phân tích để không sử dụng loại biểu đồ này bạn đọc có thể tìm thấy của Business Insiders hoặc của Kristin Henry - Data Visualization Consultant hoặc của Bernard Marr.

Theo quan điểm cá nhân của người biết bài này, Pie Chart không nên được sử dụng ít nhất là vì: trong hầu hết các tình huống (nếu không muốn nói là tất cả) Bart Chart có thể được sử dụng thay thế Pie Chart để đưa ra insights tiềm ẩn trong bộ dữ liệu. Nếu sử dụng Pie Chart chúng ta dễ bị ấn tượng rằng xuất khẩu của ba quốc gia trong 5 tháng là same same như nhau. Tuy nhiên thực tế khác hẳn: xuất khẩu của A có xu hướng tăng, của C có xu hướng giảm còn xuất khẩu của B thì biến động nhưng dao động xung quanh 20.

Nghĩa là Pie Chart không đưa ra được insight quan trọng về xu hướng xuất khẩu của ba quốc gia. Nhưng Bar Chart thì đưa ra một insight này. Data visualization được sử dụng để đưa ra insight/fact tiềm ẩn trong dữ liệu. Bất cứ graph nào mà thất bại trong nhiệm vụ này như đưa ra các thông tin gây hiểu lầm, hiểu sai (misleading/confusing) thì coi như đó là một graph bỏ đi.

R Codes

Dưới đây là R codes cho cả Pie và Bar Chart trên:

# Load some packages: 

library(tidyverse)
library(extrafont)
library(gridExtra)

# Create a fake data: 
export <- c(17, 18, 20, 22, 23, 20, 20, 19, 21, 20, 23, 22, 20, 18, 17)
nations <- rep(c("A", "B", "C"), each = 5, times = 1)
months <- rep(month.abb[1:5], each = 1, times = 3)
data <- tibble(nation = nations, month = factor(months, levels = month.abb[1:5]), export = export)

# Select font and colors for ploting: 
my_colors <- c("#33658A", "#2F4858", "#F6AE2D", "#F26419", "#999999")
my_font <- "Roboto Condensed"

# Pie chart: 

data %>% 
  ggplot(aes(x = "", y = export, fill = month)) + 
  geom_col() + 
  facet_wrap(~ nation) + 
  coord_polar("y", start = 0) + 
  scale_fill_manual(values = my_colors) + 
  theme(axis.text = element_blank(), axis.ticks = element_blank()) + 
  theme(axis.title = element_blank()) + 
  theme(legend.title = element_blank()) + 
  theme(text = element_text(family = my_font)) + 
  labs(title = "Option 1: Pie Chart for Presenting Montly Export by Contry") -> p1
  
# Bar chart: 

data %>% 
  ggplot(aes(x = month, y = export, fill = month)) + 
  geom_col() + 
  facet_wrap(~ nation) + 
  scale_fill_manual(values = my_colors) + 
  theme(axis.title = element_blank()) + 
  theme(legend.title = element_blank()) + 
  theme(text = element_text(family = my_font)) + 
  theme(axis.ticks.x = element_blank()) + 
  theme(panel.grid.major.x = element_blank()) + 
  labs(title = "Option 2: Bar Chart for Presenting Montly Export by Contry") + 
  scale_y_continuous(expand = c(0, 0)) -> p2 

# Combine the two charts: 

grid.arrange(p1, p2)
LS0tDQp0aXRsZTogJ1doeSBZb3UgU2hvdWxkIE5vdCBVc2UgUGllIENoYXJ0Jw0KYXV0aG9yOiAnQXV0aG9yOiBOZ3V5ZW4gQ2hpIER1bmcnDQpzdWJ0aXRsZTogIkRhaWx5IEdyYXBoIFNlcmllcyINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDogDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgICMgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgaGlnaGxpZ2h0OiB6ZW5idXJuDQogICAgIyBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW1lOiAiZmxhdGx5Ig0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KLS0tDQoNCmBgYHtyIHNldHVwLGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFLCBjYWNoZSA9IFRSVUUpDQoNCmBgYA0KDQohW10ocGllLmpwZykNCg0KKlN0YXRpc3RpY2lhbnMgZ2VuZXJhbGx5IHJlZ2FyZCBwaWUgY2hhcnRzIGFzIGEgcG9vciBtZXRob2Qgb2YgZGlzcGxheWluZyBpbmZvcm1hdGlvbiwgYW5kIHRoZXkgYXJlIHVuY29tbW9uIGluIHNjaWVudGlmaWMgbGl0ZXJhdHVyZS4gT25lIHJlYXNvbiBpcyB0aGF0IGl0IGlzIG1vcmUgZGlmZmljdWx0IGZvciBjb21wYXJpc29ucyB0byBiZSBtYWRlIGJldHdlZW4gdGhlIHNpemUgb2YgaXRlbXMgaW4gYSBjaGFydCB3aGVuIGFyZWEgaXMgdXNlZCBpbnN0ZWFkIG9mIGxlbmd0aCBhbmQgd2hlbiBkaWZmZXJlbnQgaXRlbXMgYXJlIHNob3duIGFzIGRpZmZlcmVudCBzaGFwZXMqDQoNCg0KIyBNb3RpdmF0aW9ucw0KDQpbUGllIENoYXJ0XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9QaWVfY2hhcnQpIGzDoCBt4buZdCBraeG7g3UgYmnhu4N1IMSR4buTIGThu4UgdGhp4bq/dCBr4bq/IHbDoCBi4buLIGzhuqFtIGThu6VuZyAtIHPhu60gZOG7pW5nIHTDuXkgdGnhu4duLiBMb+G6oWkgYmnhu4N1IMSR4buTIG7DoHkgY8OzIG5oaeG7gXUgbmjGsOG7o2MgxJFp4buDbSB2w6Aga2jDtG5nIGThu4Ugc+G7rSBk4bulbmcgdGjhuq1tIGNow60gbmhp4buBdSBkYXRhIHZpc3VhbGl6ZXJzIGPDsm4gY2hvIHLhurFuZyBuw6puIHThu6sgYuG7jyB2aeG7h2Mgc+G7rSBk4bulbmcgbG/huqFpIGJp4buDdSDEkeG7kyBuw6B5LiBOaOG7r25nIGzDrSBkbyDEkcaw4bujYyBwaMOibiB0w61jaCDEkeG7gyBraMO0bmcgc+G7rSBk4bulbmcgbG/huqFpIGJp4buDdSDEkeG7kyBuw6B5IGLhuqFuIMSR4buNYyBjw7MgdGjhu4MgdMOsbSB0aOG6pXkgY+G7p2EgW0J1c2luZXNzIEluc2lkZXJzXShodHRwczovL3d3dy5idXNpbmVzc2luc2lkZXIuY29tL3BpZS1jaGFydHMtYXJlLXRoZS13b3JzdC0yMDEzLTYpIGhv4bq3YyBj4bunYSBbS3Jpc3RpbiBIZW5yeV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BLcmlzdGluSGVucnkvaW4tZGVmZW5zZS1vZi1waWUtY2hhcnRzLWFuZC13aHkteW91LXNob3VsZG50LXVzZS10aGVtLWRmMmU4Y2NiNWY3NikgLSBEYXRhIFZpc3VhbGl6YXRpb24gQ29uc3VsdGFudCBob+G6t2MgY+G7p2EgW0Jlcm5hcmQgTWFycl0oaHR0cHM6Ly9iZXJuYXJkbWFyci5jb20vZGVmYXVsdC5hc3A/Y29udGVudElEPTE3NzkpLiANCg0KVGhlbyBxdWFuIMSRaeG7g20gY8OhIG5ow6JuIGPhu6dhIG5nxrDhu51pIGJp4bq/dCBiw6BpIG7DoHksIFBpZSBDaGFydCBraMO0bmcgbsOqbiDEkcaw4bujYyBz4butIGThu6VuZyDDrXQgbmjhuqV0IGzDoCB2w6w6ICoqdHJvbmcgaOG6p3UgaOG6v3QgY8OhYyB0w6xuaCBodeG7kW5nIChu4bq/dSBraMO0bmcgbXXhu5FuIG7Ds2kgbMOgIHThuqV0IGPhuqMpIEJhcnQgQ2hhcnQgY8OzIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIHRoYXkgdGjhur8gUGllIENoYXJ0IMSR4buDIMSRxrBhIHJhIGluc2lnaHRzIHRp4buBbSDhuqluIHRyb25nIGLhu5kgZOG7ryBsaeG7h3UqKi4gTuG6v3Ugc+G7rSBk4bulbmcgUGllIENoYXJ0IGNow7puZyB0YSBk4buFIGLhu4sg4bqlbiB0xrDhu6NuZyBy4bqxbmcgeHXhuqV0IGto4bqpdSBj4bunYSBiYSBxdeG7kWMgZ2lhIHRyb25nIDUgdGjDoW5nIGzDoCBzYW1lIHNhbWUgbmjGsCBuaGF1LiBUdXkgbmhpw6puIHRo4buxYyB04bq/IGtow6FjIGjhurNuOiB4deG6pXQga2jhuql1IGPhu6dhIEEgY8OzIHh1IGjGsOG7m25nIHTEg25nLCBj4bunYSBDIGPDsyB4dSBoxrDhu5tuZyBnaeG6o20gY8OybiB4deG6pXQga2jhuql1IGPhu6dhIEIgdGjDrCBiaeG6v24gxJHhu5luZyBuaMawbmcgZGFvIMSR4buZbmcgeHVuZyBxdWFuaCAyMC4gDQoNCk5naMSpYSBsw6AgUGllIENoYXJ0IGtow7RuZyDEkcawYSByYSDEkcaw4bujYyBpbnNpZ2h0IHF1YW4gdHLhu41uZyB24buBIHh1IGjGsOG7m25nIHh14bqldCBraOG6qXUgY+G7p2EgYmEgcXXhu5FjIGdpYS4gTmjGsG5nIEJhciBDaGFydCB0aMOsIMSRxrBhIHJhIG3hu5l0IGluc2lnaHQgbsOgeS4gRGF0YSB2aXN1YWxpemF0aW9uIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIMSRxrBhIHJhIGluc2lnaHQvZmFjdCB0aeG7gW0g4bqpbiB0cm9uZyBk4buvIGxp4buHdS4gQuG6pXQgY+G7qSBncmFwaCBuw6BvIG3DoCB0aOG6pXQgYuG6oWkgdHJvbmcgbmhp4buHbSB24bulIG7DoHkgbmjGsCDEkcawYSByYSBjw6FjIHRow7RuZyB0aW4gZ8OieSBoaeG7g3UgbOG6p20sIGhp4buDdSBzYWkgKG1pc2xlYWRpbmcvY29uZnVzaW5nKSB0aMOsIGNvaSBuaMawIMSRw7MgbMOgIG3hu5l0IGdyYXBoIGLhu48gxJFpLiANCg0KDQojIFIgQ29kZXMNCg0KRMaw4bubaSDEkcOieSBsw6AgUiBjb2RlcyBjaG8gY+G6oyBQaWUgdsOgIEJhciBDaGFydCB0csOqbjogDQpgYGB7ciwgZXZhbD1GQUxTRX0NCg0KIyBMb2FkIHNvbWUgcGFja2FnZXM6IA0KDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZXh0cmFmb250KQ0KbGlicmFyeShncmlkRXh0cmEpDQoNCiMgQ3JlYXRlIGEgZmFrZSBkYXRhOiANCmV4cG9ydCA8LSBjKDE3LCAxOCwgMjAsIDIyLCAyMywgMjAsIDIwLCAxOSwgMjEsIDIwLCAyMywgMjIsIDIwLCAxOCwgMTcpDQpuYXRpb25zIDwtIHJlcChjKCJBIiwgIkIiLCAiQyIpLCBlYWNoID0gNSwgdGltZXMgPSAxKQ0KbW9udGhzIDwtIHJlcChtb250aC5hYmJbMTo1XSwgZWFjaCA9IDEsIHRpbWVzID0gMykNCmRhdGEgPC0gdGliYmxlKG5hdGlvbiA9IG5hdGlvbnMsIG1vbnRoID0gZmFjdG9yKG1vbnRocywgbGV2ZWxzID0gbW9udGguYWJiWzE6NV0pLCBleHBvcnQgPSBleHBvcnQpDQoNCiMgU2VsZWN0IGZvbnQgYW5kIGNvbG9ycyBmb3IgcGxvdGluZzogDQpteV9jb2xvcnMgPC0gYygiIzMzNjU4QSIsICIjMkY0ODU4IiwgIiNGNkFFMkQiLCAiI0YyNjQxOSIsICIjOTk5OTk5IikNCm15X2ZvbnQgPC0gIlJvYm90byBDb25kZW5zZWQiDQoNCiMgUGllIGNoYXJ0OiANCg0KZGF0YSAlPiUgDQogIGdncGxvdChhZXMoeCA9ICIiLCB5ID0gZXhwb3J0LCBmaWxsID0gbW9udGgpKSArIA0KICBnZW9tX2NvbCgpICsgDQogIGZhY2V0X3dyYXAofiBuYXRpb24pICsgDQogIGNvb3JkX3BvbGFyKCJ5Iiwgc3RhcnQgPSAwKSArIA0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBteV9jb2xvcnMpICsgDQogIHRoZW1lKGF4aXMudGV4dCA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKSkgKyANCiAgdGhlbWUoYXhpcy50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkgKyANCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArIA0KICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KGZhbWlseSA9IG15X2ZvbnQpKSArIA0KICBsYWJzKHRpdGxlID0gIk9wdGlvbiAxOiBQaWUgQ2hhcnQgZm9yIFByZXNlbnRpbmcgTW9udGx5IEV4cG9ydCBieSBDb250cnkiKSAtPiBwMQ0KICANCiMgQmFyIGNoYXJ0OiANCg0KZGF0YSAlPiUgDQogIGdncGxvdChhZXMoeCA9IG1vbnRoLCB5ID0gZXhwb3J0LCBmaWxsID0gbW9udGgpKSArIA0KICBnZW9tX2NvbCgpICsgDQogIGZhY2V0X3dyYXAofiBuYXRpb24pICsgDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IG15X2NvbG9ycykgKyANCiAgdGhlbWUoYXhpcy50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkgKyANCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArIA0KICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KGZhbWlseSA9IG15X2ZvbnQpKSArIA0KICB0aGVtZShheGlzLnRpY2tzLnggPSBlbGVtZW50X2JsYW5rKCkpICsgDQogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSkgKyANCiAgbGFicyh0aXRsZSA9ICJPcHRpb24gMjogQmFyIENoYXJ0IGZvciBQcmVzZW50aW5nIE1vbnRseSBFeHBvcnQgYnkgQ29udHJ5IikgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKGV4cGFuZCA9IGMoMCwgMCkpIC0+IHAyIA0KDQojIENvbWJpbmUgdGhlIHR3byBjaGFydHM6IA0KDQpncmlkLmFycmFuZ2UocDEsIHAyKQ0KDQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==