日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

輕松玩轉(zhuǎn)Python,五個(gè)步驟打造驚艷的折線圖

來源: 責(zé)編: 時(shí)間:2023-11-11 23:10:13 388觀看
導(dǎo)讀1、簡(jiǎn)介圖片最富有的5個(gè)國(guó)家的GDP隨時(shí)間的演變Matplotlib可以快速輕松地使用現(xiàn)成的函數(shù)繪制圖表,但是微調(diào)步驟需要花費(fèi)更多精力。今天就來介紹如何使用Matplotlib繪制吸引人的圖表。本文詳細(xì)介紹如何從下面這張圖↓圖

1、簡(jiǎn)介

圖片圖片B7228資訊網(wǎng)——每日最新資訊28at.com

最富有的5個(gè)國(guó)家的GDP隨時(shí)間的演變B7228資訊網(wǎng)——每日最新資訊28at.com

Matplotlib可以快速輕松地使用現(xiàn)成的函數(shù)繪制圖表,但是微調(diào)步驟需要花費(fèi)更多精力。今天就來介紹如何使用Matplotlib繪制吸引人的圖表。B7228資訊網(wǎng)——每日最新資訊28at.com

本文詳細(xì)介紹如何從下面這張圖↓B7228資訊網(wǎng)——每日最新資訊28at.com

圖片圖片B7228資訊網(wǎng)——每日最新資訊28at.com

優(yōu)化為下面這張圖↓B7228資訊網(wǎng)——每日最新資訊28at.com

圖片圖片B7228資訊網(wǎng)——每日最新資訊28at.com

2、數(shù)據(jù)

為了說明方法,本文使用了包含過去50年各國(guó)GDP信息的公開數(shù)據(jù)集:B7228資訊網(wǎng)——每日最新資訊28at.com

來源:世界銀行國(guó)民賬戶數(shù)據(jù)和OECD(經(jīng)濟(jì)合作與發(fā)展組織)國(guó)民賬戶數(shù)據(jù)文件。B7228資訊網(wǎng)——每日最新資訊28at.com

許可證URL:https://datacatalog.worldbank.org/public-licenses#cc-byB7228資訊網(wǎng)——每日最新資訊28at.com

導(dǎo)入必要的軟件包、讀取數(shù)據(jù)、繪制圖表,對(duì)2022年的GDP前20個(gè)國(guó)家進(jìn)行篩選:B7228資訊網(wǎng)——每日最新資訊28at.com

import pandas as pdimport matplotlib.pyplot as pltfrom datetime import timedelta# 讀取數(shù)據(jù)df = pd.read_csv('88a1e584-0a94-4e73-b650-749332831ef4_Data.csv', sep=',')df.drop(['Series Name', 'Series Code', 'Country Code'], axis=1, inplace=True)df = df.dropna(subset=['Country Name'])# 對(duì) 2022 年最富有的 20 個(gè)國(guó)家進(jìn)行篩選top_20_countries = df[df['Year'] == '2022-01-01'].sort_values('GDP', ascending = False).head(20)['Country Name'].tolist()df = df[df['Country Name'].isin(top_20_countries)].reset_index(drop = True)df.head()

3、基本圖

首先,只需四行代碼就足以創(chuàng)建圖形,并循環(huán)遍歷各國(guó)以繪制它們各自的折線:B7228資訊網(wǎng)——每日最新資訊28at.com

# 創(chuàng)建圖形和坐標(biāo)軸對(duì)象,指定尺寸和DPIfig, ax = plt.subplots(figsize=(13.33,7.5), dpi = 96)# 繪制折線for country in top_20_countries:    data = df[df['Country Name'] == country]    line = ax.plot(data['Year'], data['GDP'], label=country)

最基本的Matplotlib折線圖最基本的Matplotlib折線圖B7228資訊網(wǎng)——每日最新資訊28at.com

4、基本要素

接下來向圖表中添加一些關(guān)鍵內(nèi)容,使其更易于觀眾閱讀。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 網(wǎng)格

為了提高圖表的可讀性,網(wǎng)格是必不可少的。將網(wǎng)格的透明度設(shè)置為0.5,這樣它們就不會(huì)對(duì)數(shù)據(jù)點(diǎn)造成太大干擾。B7228資訊網(wǎng)——每日最新資訊28at.com

  • X軸和Y軸重新格式化

為了更全面地了解微調(diào)的可能性,本文故意添加了更多的參數(shù)。例如,X軸不需要major_formatter 和major_locator對(duì)象,因?yàn)楸疚闹伙@示年份,但如果讀者的X軸包含其他數(shù)字,這就會(huì)派上用場(chǎng)。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 圖例

由于要顯示很多條線,因此添加標(biāo)簽和圖例非常重要,這樣讀者就能知道哪條線是哪條線。B7228資訊網(wǎng)——每日最新資訊28at.com

# 添加圖例ax.legend(loc="best", fnotallow=8)# 創(chuàng)建網(wǎng)格ax.grid(which="major", axis='x', color='#DAD8D7', alpha=0.5, zorder=1)ax.grid(which="major", axis='y', color='#DAD8D7', alpha=0.5, zorder=1)# 重新格式化x軸標(biāo)簽和刻度線標(biāo)簽ax.set_xlabel('', fnotallow=12, labelpad=10) # 不需要軸標(biāo)簽ax.xaxis.set_label_position("bottom")#ax.xaxis.set_major_formatter(lambda s, i : f'{s:,.0f}') #以防萬一我們需要額外的格式設(shè)置#ax.xaxis.set_major_locator(MaxNLocator(integer=True)) #以防我們需要額外的格式化ax.xaxis.set_tick_params(pad=2, labelbottom=True, bottom=True, labelsize=12, labelrotatinotallow=0)# 重新格式化y軸ax.set_ylabel('GDP (Billions USD)', fnotallow=12, labelpad=10)ax.yaxis.set_label_position("left")ax.yaxis.set_major_formatter(lambda s, i : f'{s*10**-9:,.0f}')#ax.yaxis.set_major_locator(MaxNLocator(integer=True)) #以防我們需要額外的格式化ax.yaxis.set_tick_params(pad=2, labeltop=False, labelbottom=True, bottom=False, labelsize=12)

圖片圖片B7228資訊網(wǎng)——每日最新資訊28at.com

為本文的圖表添加一些必要的功能B7228資訊網(wǎng)——每日最新資訊28at.com

5、突出重點(diǎn)

接下來,突出顯示最富有的五個(gè)國(guó)家,并跟蹤其GDP隨時(shí)間的變化。在字典中定義了特定的顏色和線條樣式,并對(duì)代碼稍作修改,以單獨(dú)繪制它們。B7228資訊網(wǎng)——每日最新資訊28at.com

# 顏色和線條樣式colors_dict = {'United States': '#014f86', 'China': '#DC0000', 'Japan': '#ff4d6d', 'Germany': '#403d39', 'India': '#6a994e'}line_styles_dict = {'United States': '-', 'China': '-', 'Japan': '-', 'Germany': '-', 'India': '-'}# 繪制前5條線for country in top_20_countries[:5]:    color = colors_dict.get(country, 'grey')  # 從字典中獲取顏色,如果找不到,默認(rèn)為灰色    line_style = line_styles_dict.get(country, '-')  # 從字典中獲取線條樣式,如果未找到,默認(rèn)為實(shí)線    data = df[df['Country Name'] == country]    line = ax.plot(data['Year'], data['GDP'], color=color, linestyle=line_style, zorder=2, label=country)# 添加圖例ax.legend(loc="best", fnotallow=8)# 繪制剩余部分for country in top_20_countries[5:]:    data = df[df['Country Name'] == country]    line = ax.plot(data['Year'], data['GDP'], color='grey', linestyle=':', linewidth=0.5, zorder=2)

圖片圖片B7228資訊網(wǎng)——每日最新資訊28at.com

仍然是相同的折線圖,但故事更清晰了B7228資訊網(wǎng)——每日最新資訊28at.com

6、修改外觀

為本文的圖表添加一些功能,可以使其看起來更加專業(yè)。它們將位于所有圖表的頂部,并且與本文中使用的數(shù)據(jù)無關(guān)。B7228資訊網(wǎng)——每日最新資訊28at.com

通過下面的代碼片段,這些調(diào)整將很容易實(shí)現(xiàn)。B7228資訊網(wǎng)——每日最新資訊28at.com

讀者可以根據(jù)自己的需求對(duì)其進(jìn)行調(diào)整,以創(chuàng)建自己的視覺風(fēng)格。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 邊框

邊框是圖表周圍可見的框。除了左邊的邊框會(huì)設(shè)置得稍微粗一些外,其余的邊框都將被移除。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 頂部的紅線和矩形

在標(biāo)題上方添加一條紅線和一個(gè)矩形,以便將圖表與上方的文本很好地隔離開來。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 標(biāo)題和副標(biāo)題

添加標(biāo)題來介紹圖表,副標(biāo)題可以用來進(jìn)一步解釋內(nèi)容,甚至呈現(xiàn)初步的結(jié)論。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 來源

在所有制作的圖表中都必不可少的一項(xiàng)。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 調(diào)整邊距

調(diào)整圖表區(qū)域周圍的邊距,以確保充分利用所有可用空間。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 設(shè)置白色背景

將背景設(shè)置為白色(默認(rèn)為透明)在通過電子郵件、Teams或任何其他工具發(fā)送圖表時(shí)非常有用,因?yàn)橥该鞅尘翱赡軙?huì)造成問題。B7228資訊網(wǎng)——每日最新資訊28at.com

# 移除邊框ax.spines[['top','right','bottom']].set_visible(False)# 加粗左側(cè)邊框ax.spines['left'].set_linewidth(1.1)# 在頂部添加紅線和矩形ax.plot([0.05, .9], [.98, .98], transform=fig.transFigure, clip_notallow=False, color='#E3120B', linewidth=.6)ax.add_patch(plt.Rectangle((0.05,.98), 0.04, -0.02, facecolor='#E3120B', transform=fig.transFigure, clip_notallow=False, linewidth = 0))# 添加標(biāo)題和副標(biāo)題ax.text(x=0.05, y=.93, s="Evolution of the 20 Richest Countries GDP over the Past 50 Years", transform=fig.transFigure, ha='left', fnotallow=14, weight='bold', alpha=.8)ax.text(x=0.05, y=.90, s="Focus on the current 5 richest countries from 1973 to 2022", transform=fig.transFigure, ha='left', fnotallow=12, alpha=.8)# 設(shè)置來源文本ax.text(x=0.05, y=0.12, s="Source: World Bank - https://databank.worldbank.org/", transform=fig.transFigure, ha='left', fnotallow=10, alpha=.7)# 調(diào)整繪圖區(qū)域周圍的邊距plt.subplots_adjust(left=None, bottom=0.2, right=None, top=0.85, wspace=None, hspace=None)# 設(shè)置白色背景fig.patch.set_facecolor('white')

本文的視覺風(fēng)格應(yīng)用于圖表,使其更加整潔本文的視覺風(fēng)格應(yīng)用于圖表,使其更加整潔B7228資訊網(wǎng)——每日最新資訊28at.com

7、點(diǎn)睛之筆

為了得到在文章開頭介紹的最終結(jié)果,剩下要做的就是實(shí)現(xiàn)這幾個(gè)額外的組件:B7228資訊網(wǎng)——每日最新資訊28at.com

  • 終點(diǎn)標(biāo)記

這些元素純粹是為了美觀,但能為本文的折線圖增添一份亮點(diǎn)。用標(biāo)記突出顯示每條折線的最后一個(gè)點(diǎn),使其更加醒目。B7228資訊網(wǎng)——每日最新資訊28at.com

  • 注釋

借助annotate方法,可以突出顯示圖表中的特定點(diǎn),并在其上直接添加注釋。B7228資訊網(wǎng)——每日最新資訊28at.com

# 繪制前5條線for country in top_20_countries[:5]:    color = colors_dict.get(country, 'grey')  # 從字典中獲取顏色,如果找不到,默認(rèn)為黑色    line_style = line_styles_dict.get(country, '-')  # 從字典中獲取線條樣式,如果找不到,默認(rèn)為實(shí)線    data = df[df['Country Name'] == country]    line = ax.plot(data['Year'], data['GDP'], color=color, linestyle=line_style, zorder=2, label = country)    ax.plot(data['Year'].iloc[-1], data['GDP'].iloc[-1], 'o', color=color, markersize=10, alpha=0.3)    ax.plot(data['Year'].iloc[-1], data['GDP'].iloc[-1], 'o', color=color, markersize=5)# 在圖表上添加一些文字ax.annotate('During the 2000s,/nChina began experiencing rapid economic growth,/noutpacing all other countries.',            (data['Year'].iloc[-18], 2000000000000),            xytext=(data['Year'].iloc[-28]-timedelta(days=500), 18000000000000),            ha='left', fnotallow=9, arrowprops=dict(arrowstyle='-|>', facecolor='k', cnotallow="arc3,rad=-0.15"))

圖片圖片B7228資訊網(wǎng)——每日最新資訊28at.com

最終成果:這個(gè)折線圖清晰易讀B7228資訊網(wǎng)——每日最新資訊28at.com

8、結(jié)語

本文分享了使用Matplotlib繪制折線圖的知識(shí),同時(shí)提供了實(shí)用可重復(fù)使用的代碼片段。B7228資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-20941-0.html輕松玩轉(zhuǎn)Python,五個(gè)步驟打造驚艷的折線圖

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 淺談JVM調(diào)優(yōu)

下一篇: Json格式弊端及優(yōu)化方案

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 7月安卓手機(jī)好評(píng)榜:三星S23Ultra好評(píng)率第一

    性能榜和性價(jià)比榜之后,我們來看最后的安卓手機(jī)好評(píng)榜,數(shù)據(jù)來源安兔兔評(píng)測(cè),收集時(shí)間2023年7月1日至7月31日,僅限國(guó)內(nèi)市場(chǎng)。第一名:三星Galaxy S23 Ultra好評(píng)率:95.71%在即將迎來新
  • 6月安卓手機(jī)性價(jià)比榜:Note 12 Turbo斷層式碾壓

    6月份有一個(gè)618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進(jìn)了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產(chǎn)品也出現(xiàn)了歷史低價(jià),那么各個(gè)價(jià)位段的產(chǎn)品性價(jià)比
  • 從 Pulsar Client 的原理到它的監(jiān)控面板

    背景前段時(shí)間業(yè)務(wù)團(tuán)隊(duì)偶爾會(huì)碰到一些 Pulsar 使用的問題,比如消息阻塞不消費(fèi)了、生產(chǎn)者消息發(fā)送緩慢等各種問題。雖然我們有個(gè)監(jiān)控頁面可以根據(jù) topic 維度查看他的發(fā)送狀態(tài),
  • 學(xué)習(xí)JavaScript的10個(gè)理由...

    作者 | Simplilearn編譯 | 王瑞平當(dāng)你決心學(xué)習(xí)一門語言的時(shí)候,很難選擇到底應(yīng)該學(xué)習(xí)哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個(gè)人開發(fā)仿造稿定設(shè)計(jì)的圖片編輯器到現(xiàn)在,不知不覺已過去一年時(shí)間了,期間我經(jīng)歷了裁員失業(yè)、面試找工作碰壁,寒冬下一直沒有很好地履行計(jì)劃.....這些就放在日
  • 自動(dòng)化在DevOps中的力量:簡(jiǎn)化軟件開發(fā)和交付

    自動(dòng)化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動(dòng)化工具和方法,DevOps團(tuán)隊(duì)可以實(shí)現(xiàn)以下目標(biāo):消除手動(dòng)和重復(fù)性任務(wù)。簡(jiǎn)化流程。在整個(gè)軟件開發(fā)生命周期中實(shí)現(xiàn)更
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對(duì)帶有指定屬性的 HTML 元素設(shè)置樣式。可以為擁有指定屬性的 HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡(jiǎn)單而
  • 小米MIX Fold 3下月亮相:今年唯一無短板的全能折疊屏

    這段時(shí)間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都有新的進(jìn)展,其中榮耀、三星都已陸續(xù)發(fā)布了最新的折疊屏旗艦,尤其號(hào)榮耀Magi
  • 三星Galaxy Z Fold/Flip 5國(guó)行售價(jià)曝光 :最低7499元/12999元起

    據(jù)官方此前宣布,三星將于7月26日也就是明天在韓國(guó)首爾舉辦Unpacked活動(dòng),屆時(shí)將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
Top 主站蜘蛛池模板: 沙湾县| 湘阴县| 鄂托克前旗| 新和县| 镇雄县| 内丘县| 清苑县| 天气| 左贡县| 乌拉特中旗| 孟村| 滕州市| 科技| 道真| 唐河县| 内江市| 阜南县| 万全县| 荔波县| 兴海县| 卓资县| 盘锦市| 乐平市| 安岳县| 岳阳县| 汝南县| 乌拉特后旗| 芮城县| 东港市| 富平县| 扶绥县| 南城县| 榆树市| 镇巴县| 洮南市| 沂南县| 扎鲁特旗| 德格县| 射阳县| 天祝| 庆云县|