iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
佛心分享-IT 人自學之術

努力成為資料記者:以國際議題為例系列 第 15

Day 15: 以自由時報的新聞來製作資訊圖表: 全球夜生活排名

  • 分享至 

  • xImage
  •  

       今天看到一個很有趣的新聞,是與夜生活相關的。在自由時報所發布的新聞〈台北夜生活魅力十足 全球排名第12、亞洲區第二〉內文指出,依照英國《Time Out》生活指南雜誌的最新調查,台北在全球最佳夜生活城市中排名第12位,榮登亞洲區第二。(文字引用出處: https://news.ltn.com.tw/news/world/breakingnews/4779424)因為我覺得這種夜生活排名的新聞很有意思,也可以看出現在人們對於一個好的夜生活需要具備的條件,因此我希望藉由這篇新聞內容,來製作資訊圖表。

在這篇新聞中,我認為可以製成資訊圖表的內容如下: (同樣擷取自自由時報新聞內文)

全球最佳夜生活城市排名依序分別為:1.巴西里約熱內盧,2.菲律賓馬尼拉,3.德國柏林,4.墨西哥瓜達拉哈拉(Guadalajara),5.美國奧斯汀(Austin),6.尼日拉各斯(Lagos),7.荷蘭鹿特丹,8.英國曼徹斯特,9.匈牙利布達佩斯,10.迦納阿克拉(Accra),11.阿根廷布宜諾斯艾利斯,12.台灣台北。

緊接著,我想分享我的資訊圖表製作方向。大致方式如下:
1.使用柱狀圖來顯示每個城市的排名。
2.使用Python來繪製標示各地區的圖表,並試著用不同的顏色來做出區別。
3.在顏色區別上,我想使用另一個Python套件Seabon來處理。(關於Seabon的介紹,我想留到下一篇;先放上我自己參考的圖卡跟色票介紹,內有豐富內容可以參考: https://seaborn.pydata.org/generated/seaborn.color_palette.html)

緊接著來寫程式,記得要套入Seabon套件:

import matplotlib.pyplot as plt
import seaborn as sns

# 設定城市和排名
cities = [
    "Rio de Janeiro", "Manila", "Berlin", "Guadalajara", 
    "Austin", "Lagos", "Rotterdam", "Manchester", 
    "Budapest", "Accra", "Buenos Aires", "Taipei"
]
ranks = list(range(1, 13))

# 設定不同洲的顏色
colors =sns.color_palette("flare")
continent_colors = {
    "South America": colors[1],
    "Asia": colors[2],
    "Europe": colors[3],
    "North America": colors[4],
    "Africa": colors[5],
}
city_colors = [
    continent_colors["South America"], # Rio de Janeiro
    continent_colors["Asia"], # Manila
    continent_colors["Europe"], # Berlin
    continent_colors["North America"], # Guadalajara
    continent_colors["North America"], # Austin
    continent_colors["Africa"], # Lagos
    continent_colors["Europe"], # Rotterdam
    continent_colors["Europe"], # Manchester
    continent_colors["Europe"], # Budapest
    continent_colors["Africa"], # Accra
    continent_colors["South America"], # Buenos Aires
    continent_colors["Asia"], # Taipei
]

# 繪製條狀圖
plt.figure(figsize=(11, 8))
sns.barplot(x=ranks, y=cities, palette=city_colors)

# 添加標題和標籤
plt.title("Top 12 Cities for Nightlife Worldwide")
plt.xlabel("Ranking")
plt.ylabel("Cities")

plt.show()

執行程式碼後,可以得到以下結果:

https://ithelp.ithome.com.tw/upload/images/20240825/20151873iFH7q2g6pz.png

圖1:使用Seabon所繪製的圖表。

我目前是先把所有新聞中出現的中文地名改成英文,並把標題改成英文標題。但如果有人希望用程式碼,可以把標題和標籤更換,就能繪製出自己想要的圖表了。


上一篇
Day 14: 媒體業常用視覺化工具: Flourish
下一篇
Day 16: 仿作練習: 從德國新聞來製作資訊圖表(研究篇)
系列文
努力成為資料記者:以國際議題為例29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言