欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python干貨:分享Python繪制六種可視化圖表

 更新時(shí)間:2018年08月27日 14:31:56   作者:Python編程時(shí)光  
可視化圖表有很多種,這篇文章主要介紹了Python繪制六種可視化圖表詳解的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

可視化圖表,有相當(dāng)多種,但常見的也就下面幾種,其他比較復(fù)雜一點(diǎn),大都也是基于如下幾種進(jìn)行組合,變換出來的。對(duì)于初學(xué)者來說,很容易被這官網(wǎng)上眾多的圖表類型給嚇著了,由于種類太多,幾種圖表的繪制方法很有可能會(huì)混淆起來。

因此,在這里,我特地總結(jié)了六種常見的基本圖表類型,你可以通過對(duì)比學(xué)習(xí),打下堅(jiān)實(shí)的基礎(chǔ)。

01. 折線圖

繪制折線圖,如果你數(shù)據(jù)不是很多的話,畫出來的圖將是曲折狀態(tài),但一旦你的數(shù)據(jù)集大起來,比如下面我們的示例,有100個(gè)點(diǎn),所以我們用肉眼看到的將是一條平滑的曲線。

這里我繪制三條線,只要執(zhí)行三次 plt.plot 就可以了。

import numpy as np
import matplotlib.pyplot as plt
x= np.linspace(0, 2, 100)
plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()

 

02. 散點(diǎn)圖

其實(shí)散點(diǎn)圖和折線圖是一樣的原理,將散點(diǎn)圖里的點(diǎn)用線連接起來就是折線圖了。所以繪制散點(diǎn)圖,只要設(shè)置一下線型即可。

注意:這里我也繪制三條線,和上面不同的是,我只用一個(gè) plt.plot 就可以了。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0., 5., 0.2)
# 紅色破折號(hào), 藍(lán)色方塊 ,綠色三角塊
plt.plot(x, x, 'r--', x, x**2, 'bs', x, x**3, 'g^')
plt.show()

 

03. 直方圖

直方圖,大家也不算陌生了。這里小明加大難度,在一張圖里,畫出兩個(gè)頻度直方圖。這應(yīng)該在實(shí)際場(chǎng)景上也會(huì)遇到吧,因?yàn)檫@樣真的很方便比較,有木有?

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(19680801)
mu1, sigma1 = 100, 15
mu2, sigma2 = 80, 15
x1 = mu1 + sigma1 * np.random.randn(10000)
x2 = mu2 + sigma2 * np.random.randn(10000)
# the histogram of the data
# 50:將數(shù)據(jù)分成50組
# facecolor:顏色;alpha:透明度
# density:是密度而不是具體數(shù)值
n1, bins1, patches1 = plt.hist(x1, 50, density=True, facecolor='g', alpha=1)
n2, bins2, patches2 = plt.hist(x2, 50, density=True, facecolor='r', alpha=0.2)
# n:概率值;bins:具體數(shù)值;patches:直方圖對(duì)象。
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(110, .025, r'$\mu=100,\ \sigma=15$')
plt.text(50, .025, r'$\mu=80,\ \sigma=15$')
# 設(shè)置x,y軸的具體范圍
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

 

04. 柱狀圖

同樣的,簡(jiǎn)單的柱狀圖,我就不畫了,這里畫三種比較難的圖。

4.1 并列柱狀圖

import numpy as np
import matplotlib.pyplot as plt
size = 5
a = np.random.random(size)
b = np.random.random(size)
c = np.random.random(size)
x = np.arange(size)
# 有多少個(gè)類型,只需更改n即可
total_width, n = 0.8, 3  
width = total_width / n
# 重新擬定x的坐標(biāo)
x = x - (total_width - width) / 2
# 這里使用的是偏移
plt.bar(x, a, width=width, label='a')
plt.bar(x + width, b, width=width, label='b')
plt.bar(x + 2 * width, c, width=width, label='c')
plt.legend()
plt.show()

 

4.2 疊加柱狀圖

import numpy as np
import matplotlib.pyplot as plt
size = 5
a = np.random.random(size)
b = np.random.random(size)
c = np.random.random(size)
x = np.arange(size)
# 這里使用的是偏移
plt.bar(x, a, width=0.5, label='a',fc='r')
plt.bar(x, b, bottom=a, width=0.5, label='b', fc='g')
plt.bar(x, c, bottom=a+b, width=0.5, label='c', fc='b')
plt.ylim(0, 2.5)
plt.legend()
plt.grid(True)
plt.show()

 

05. 餅圖

5.1 普通餅圖

import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
# 設(shè)置分離的距離,0表示不分離
explode = (0, 0.1, 0, 0) 
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
  shadow=True, startangle=90)
# Equal aspect ratio 保證畫出的圖是正圓形
plt.axis('equal') 
plt.show()

 

5.2 嵌套餅圖

import numpy as np
import matplotlib.pyplot as plt
# 設(shè)置每環(huán)的寬度
size = 0.3
vals = np.array([[60., 32.], [37., 40.], [29., 10.]])
# 通過get_cmap隨機(jī)獲取顏色
cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10]))
print(vals.sum(axis=1))
# [92. 77. 39.]
plt.pie(vals.sum(axis=1), radius=1, colors=outer_colors,
  wedgeprops=dict(width=size, edgecolor='w'))
print(vals.flatten())
# [60. 32. 37. 40. 29. 10.]
plt.pie(vals.flatten(), radius=1-size, colors=inner_colors,
  wedgeprops=dict(width=size, edgecolor='w'))
# equal 使得為正圓
plt.axis('equal') 
plt.show()

 

5.3 極軸餅圖

要說酷炫,極軸餅圖也是數(shù)一數(shù)二的了,這里肯定也要學(xué)一下。

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(19680801)
N = 10
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
ax = plt.subplot(111, projection='polar')
bars = ax.bar(theta, radii, width=width, bottom=0.0)
# left表示從哪開始,
# radii表示從中心點(diǎn)向邊緣繪制的長(zhǎng)度(半徑)
# width表示末端的弧長(zhǎng)
# 自定義顏色和不透明度
for r, bar in zip(radii, bars):
 bar.set_facecolor(plt.cm.viridis(r / 10.))
 bar.set_alpha(0.5)
plt.show()

 

06. 三維圖

6.1 繪制三維散點(diǎn)圖

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
data = np.random.randint(0, 255, size=[40, 40, 40])
x, y, z = data[0], data[1], data[2]
ax = plt.subplot(111, projection='3d') # 創(chuàng)建一個(gè)三維的繪圖工程
# 將數(shù)據(jù)點(diǎn)分成三部分畫,在顏色上有區(qū)分度
ax.scatter(x[:10], y[:10], z[:10], c='y') # 繪制數(shù)據(jù)點(diǎn)
ax.scatter(x[10:20], y[10:20], z[10:20], c='r')
ax.scatter(x[30:40], y[30:40], z[30:40], c='g')
ax.set_zlabel('Z') # 坐標(biāo)軸
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()

 

6.2 繪制三維平面圖

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
# 具體函數(shù)方法可用 help(function) 查看,如:help(ax.plot_surface)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
plt.show()

 

總結(jié)

以上所述是小編給大家介紹的Python繪制六種可視化圖表,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 深入理解python中pytest.ini的配置方法和參數(shù)

    深入理解python中pytest.ini的配置方法和參數(shù)

    Pytest 是 Python 測(cè)試框架中最流行的一個(gè),而 pytest.ini 文件則是 pytest 配置文件的核心,在本文中,將詳細(xì)介紹 pytest.ini 文件的配置方法和可能的參數(shù),幫助您更好地掌握 Pytest 的使用,需要的朋友可以參考下
    2024-10-10
  • Python pymongo模塊用法示例

    Python pymongo模塊用法示例

    這篇文章主要介紹了Python pymongo模塊用法,結(jié)合實(shí)例形式分析了Python中pymongo模塊的安裝與簡(jiǎn)單使用相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python采集電視劇《開端》彈幕做成詞云圖

    Python采集電視劇《開端》彈幕做成詞云圖

    大家好,本篇文章主要講的是Python采集電視劇《開端》彈幕做成詞云圖,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • python基礎(chǔ)之內(nèi)置函數(shù)

    python基礎(chǔ)之內(nèi)置函數(shù)

    這篇文章主要介紹了python內(nèi)置函數(shù),實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下
    2021-10-10
  • python3 QT5 端口轉(zhuǎn)發(fā)工具兩種場(chǎng)景分析

    python3 QT5 端口轉(zhuǎn)發(fā)工具兩種場(chǎng)景分析

    這篇文章主要介紹了python3 QT5 端口轉(zhuǎn)發(fā)工具,功能是打開本機(jī)端口,映射到指定IP的端口,接下來通過兩種場(chǎng)景給大家詳細(xì)介紹,感興趣的朋友一起看看吧
    2022-01-01
  • Python使用PyYAML庫進(jìn)行配置文件管理

    Python使用PyYAML庫進(jìn)行配置文件管理

    在現(xiàn)代軟件開發(fā)中,配置文件管理已經(jīng)成為了一個(gè)不可或缺的環(huán)節(jié),本文主要為大家詳細(xì)介紹了如何使用Python中的PyYAML庫來操作YAML文件,以及YAML文件的一些優(yōu)缺點(diǎn),希望對(duì)大家有所幫助
    2023-12-12
  • 怎樣使用Python腳本日志功能

    怎樣使用Python腳本日志功能

    Python通過logging模塊提供日志功能,關(guān)于logging模塊的使用網(wǎng)絡(luò)上已經(jīng)有很多詳細(xì)的資料,今天這里要分享的是怎樣在實(shí)際工程中使用日志功能。下面一起來學(xué)習(xí)學(xué)習(xí)。
    2016-08-08
  • 用Python畫圣誕樹代碼示例

    用Python畫圣誕樹代碼示例

    大家好,本篇文章主要講的是用Python畫圣誕樹代碼示例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python實(shí)現(xiàn)迭代時(shí)使用索引的方法示例

    Python實(shí)現(xiàn)迭代時(shí)使用索引的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)迭代時(shí)使用索引的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python使用enumerate()函數(shù)以及zip()函數(shù)獲取元素索引的相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python3.6筆記之將程序運(yùn)行結(jié)果輸出到文件的方法

    Python3.6筆記之將程序運(yùn)行結(jié)果輸出到文件的方法

    下面小編就為大家分享一篇Python3.6筆記之將程序運(yùn)行結(jié)果輸出到文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評(píng)論