Python數(shù)據(jù)分析之使用matplotlib繪制折線(xiàn)圖、柱狀圖和柱線(xiàn)混合圖
matplotlib介紹
- Matplotlib 是 Python 的繪圖庫(kù)。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開(kāi)源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython。
- 安裝Matplotlib庫(kù)命令:在cmd命令窗口輸入pip install matplotlib。
matplotlib繪制折線(xiàn)圖
1、繪制一條折線(xiàn)的折線(xiàn)圖
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
# 處理亂碼
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑體顯示中文
x = [1, 2, 3, 4]
y = [10, 50, 20, 100]
# "r" 表示紅色,ms用來(lái)設(shè)置*的大小
plt.plot(x, y, "r", marker='*', ms=10, label="a")
# plt.plot([1, 2, 3, 4], [20, 30, 80, 40], label="b")
plt.xticks(rotation=45)
plt.xlabel("發(fā)布日期")
plt.ylabel("小說(shuō)數(shù)量")
plt.title("80小說(shuō)網(wǎng)活躍度")
# upper left 將圖例a顯示到左上角
plt.legend(loc="upper left")
# 在折線(xiàn)圖上顯示具體數(shù)值, ha參數(shù)控制水平對(duì)齊方式, va控制垂直對(duì)齊方式
for x1, y1 in zip(x, y):
plt.text(x1, y1 + 1, str(y1), ha='center', va='bottom', fontsize=20, rotation=0)
plt.savefig("a.jpg")
plt.show()
圖形效果展示:

注意:savefig()是圖形存儲(chǔ)成圖片,show()是將圖形顯示出來(lái)。
2、繪制多條折線(xiàn)
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑體顯示中文
x = [1, 2, 3, 4]
y1 = [45, 50, 20, 100]
y2 = [26, 10, 76, 25]
y3 = [11, 66, 55, 88]
y4 = [69, 50, 35, 100]
plt.plot(x, y1, marker='*', ms=10, label="a")
plt.plot(x, y2, marker='*', ms=10, label="b")
plt.plot(x, y3, marker='*', ms=10, label="c")
plt.plot(x, y4, marker='*', ms=10, label="d")
plt.xticks(rotation=45)
plt.xlabel("發(fā)布日期")
plt.ylabel("小說(shuō)數(shù)量")
plt.title("80小說(shuō)網(wǎng)活躍度")
plt.legend(loc="upper left")
# 在折線(xiàn)圖上顯示具體數(shù)值, ha參數(shù)控制水平對(duì)齊方式, va控制垂直對(duì)齊方式
for y in [y1, y2, y3, y4]:
for x1, yy in zip(x, y):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.savefig("a.jpg")
plt.show()
圖形效果展示:

matplotlib繪制柱狀圖
1、繪制普通柱狀圖
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑體顯示中文
# 構(gòu)建數(shù)據(jù)
x = [1, 2, 3, 4]
y = [450, 500, 200, 1000]
# 繪圖
plt.bar(x=x, height=y, label='書(shū)庫(kù)大全', color='steelblue', alpha=0.8)
# 在柱狀圖上顯示具體數(shù)值, ha參數(shù)控制水平對(duì)齊方式, va控制垂直對(duì)齊方式
for x1, yy in zip(x, y):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# 設(shè)置標(biāo)題
plt.title("80小說(shuō)網(wǎng)活躍度")
# 為兩條坐標(biāo)軸設(shè)置名稱(chēng)
plt.xlabel("發(fā)布日期")
plt.ylabel("小說(shuō)數(shù)量")
# 顯示圖例
plt.legend()
plt.savefig("a.jpg")
plt.show()
圖形效果展示:

2、繪制多組柱狀圖
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑體顯示中文
# 構(gòu)建數(shù)據(jù)
x = ['2015', '2016', '2017', '2018', '2019']
y1 = [4500, 5000, 2000, 7000, 10000]
y2 = [5200, 7000, 5000, 9000, 11000]
# 繪圖
plt.bar(x=x, height=y1, label='python', color='steelblue', alpha=0.8)
plt.bar(x=x, height=y2, label='java', color='indianred', alpha=0.8)
# 在柱狀圖上顯示具體數(shù)值, ha參數(shù)控制水平對(duì)齊方式, va控制垂直對(duì)齊方式
for x1, yy in zip(x, y1):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
for x1, yy in zip(x, y2):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# 設(shè)置標(biāo)題
plt.title("python與java圖書(shū)對(duì)比")
# 為兩條坐標(biāo)軸設(shè)置名稱(chēng)
plt.xlabel("年份")
plt.ylabel("銷(xiāo)量")
# 顯示圖例
plt.legend()
plt.savefig("a.jpg")
plt.show()
圖形效果展示:

3、繪制柱狀圖的條柱并列顯示
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑體顯示中文
# 構(gòu)建數(shù)據(jù)
x = ['2015', '2016', '2017', '2018', '2019']
y1 = [4500, 5000, 2000, 7000, 10000]
y2 = [5200, 7000, 5000, 9000, 11000]
bar_width = 0.3
# 將X軸數(shù)據(jù)改為使用range(len(x_data), 就是0、1、2...
plt.bar(x=range(len(x)), height=y1, label='python', color='steelblue', alpha=0.8, width=bar_width)
# 將X軸數(shù)據(jù)改為使用np.arange(len(x_data))+bar_width,
# 就是bar_width、1+bar_width、2+bar_width...這樣就和第一個(gè)柱狀圖并列了
plt.bar(x=np.arange(len(x)) + bar_width, height=y2, label='java', color='indianred', alpha=0.8, width=bar_width)
# 在柱狀圖上顯示具體數(shù)值, ha參數(shù)控制水平對(duì)齊方式, va控制垂直對(duì)齊方式
for x1, yy in enumerate(y1):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
for x1, yy in enumerate(y2):
plt.text(x1 + bar_width, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# 設(shè)置標(biāo)題
plt.title("python與java對(duì)比")
# 為兩條坐標(biāo)軸設(shè)置名稱(chēng)
plt.xlabel("年份")
plt.ylabel("銷(xiāo)量")
# 顯示圖例
plt.legend()
plt.savefig("a.jpg")
plt.show()
圖形效果展示:

matplotlib繪制柱線(xiàn)混合圖
1、繪制柱線(xiàn)混合圖
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑體顯示中文
# 構(gòu)建數(shù)據(jù)
x = [2, 4, 6, 8]
y = [450, 500, 200, 1000]
# 繪圖
plt.bar(x=x, height=y, label='書(shū)庫(kù)大全', color='steelblue', alpha=0.8)
# 在柱狀圖上顯示具體數(shù)值, ha參數(shù)控制水平對(duì)齊方式, va控制垂直對(duì)齊方式
for x1, yy in zip(x, y):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# 設(shè)置標(biāo)題
plt.title("80小說(shuō)網(wǎng)活躍度")
# 為兩條坐標(biāo)軸設(shè)置名稱(chēng)
plt.xlabel("發(fā)布日期")
plt.ylabel("小說(shuō)數(shù)量")
# 顯示圖例
plt.legend()
# 畫(huà)折線(xiàn)圖
plt.plot(x, y, "r", marker='*', ms=10, label="a")
plt.xticks(rotation=45)
plt.legend(loc="upper left")
plt.savefig("a.jpg")
plt.show()
圖形效果展示:

總結(jié)
到此這篇關(guān)于Python數(shù)據(jù)分析之使用matplotlib繪制折線(xiàn)圖、柱狀圖和柱線(xiàn)混合圖的文章就介紹到這了,更多相關(guān)Python matplotlib繪制折線(xiàn)圖 柱狀圖 柱線(xiàn)混合圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用Python的matplotlib庫(kù)繪制柱狀圖
- 教你利用python的matplotlib(pyplot)繪制折線(xiàn)圖和柱狀圖
- python如何利用matplotlib繪制并列雙柱狀圖并標(biāo)注數(shù)值
- Python使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽bar_label()
- python中如何利用matplotlib畫(huà)多個(gè)并列的柱狀圖
- Python用?matplotlib?繪制柱狀圖
- python使用matplotlib畫(huà)柱狀圖、散點(diǎn)圖
- python使用matplotlib繪制柱狀圖教程
- Python 如何利用pandas 和 matplotlib繪制柱狀圖
相關(guān)文章
擴(kuò)展Django admin的list_filter()可使用范圍方法
今天小編就為大家分享一篇擴(kuò)展Django admin的list_filter()可使用范圍方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
分享20個(gè)實(shí)用的Python?Excel自動(dòng)化腳本
這篇文章主要介紹了20個(gè)實(shí)用的Python?Excel自動(dòng)化腳本,用于自動(dòng)化處理和分析Excel文件,提高工作效率,從批量填充單元格、設(shè)置行高與列寬到生成數(shù)據(jù)透視表和圖表,涵蓋了數(shù)據(jù)處理和分析的各個(gè)方面,需要的朋友可以參考下2025-02-02
python動(dòng)態(tài)進(jìn)度條的實(shí)現(xiàn)代碼
有時(shí)候我們需要使用print打印工作進(jìn)度,正常使用print函數(shù)會(huì)導(dǎo)致刷屏的現(xiàn)象,本文通過(guò)實(shí)例代碼給大家介紹python動(dòng)態(tài)進(jìn)度條的實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧2019-07-07
Python實(shí)現(xiàn)解析ini配置文件的示例詳解
在開(kāi)發(fā)過(guò)程中,配置文件是少不了的,而且配置文件是有專(zhuān)門(mén)的格式的,比如:ini,?yaml,?toml?等等。而對(duì)于?Python?而言,也都有相應(yīng)的庫(kù)來(lái)解析相應(yīng)格式的文件,下面我們來(lái)看看?ini?文件要如何解析2022-09-09
Python中Async語(yǔ)法協(xié)程的實(shí)現(xiàn)
這篇文章主要介紹了Python中Async語(yǔ)法協(xié)程的實(shí)現(xiàn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
python 回調(diào)函數(shù)和回調(diào)方法的實(shí)現(xiàn)分析
這篇文章主要介紹了python 回調(diào)函數(shù)和回調(diào)方法的實(shí)現(xiàn)分析,需要的朋友可以參考下2016-03-03
wxpython 最小化到托盤(pán)與歡迎圖片的實(shí)現(xiàn)方法
這篇文章主要分享一個(gè)python實(shí)例代碼,使用wxpython實(shí)現(xiàn)最小化到托盤(pán)與歡迎圖片,需要的朋友可以參考下2014-06-06
pycharm實(shí)現(xiàn)在虛擬環(huán)境中引入別人的項(xiàng)目
這篇文章主要介紹了pycharm實(shí)現(xiàn)在虛擬環(huán)境中引入別人的項(xiàng)目,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python爬蟲(chóng)框架Scrapy基本用法入門(mén)教程
這篇文章主要介紹了Python爬蟲(chóng)框架Scrapy基本用法,結(jié)合實(shí)例形式分析了xpath簡(jiǎn)單使用、xmlfeed模板、csvfeed模板及crawlfeed模板簡(jiǎn)單使用方法,需要的朋友可以參考下2018-07-07

