国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
【免費(fèi)贈(zèng)書】Python如何實(shí)現(xiàn)數(shù)據(jù)可視化?


Python擁有眾多的第三方庫(kù)使我們可以方便地進(jìn)行一些數(shù)據(jù)的可視化操作。目前很多庫(kù)的可視化應(yīng)用都是建立在matplotlib的基礎(chǔ)上的。所以這里重點(diǎn)介紹matplotlib庫(kù)的基本使用方法。


基本操作


先看一個(gè)示例代碼來(lái)了解一張圖的組成部分,如下所示。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-2, 2, 100)
y = np.cos(np.pi*x)

plt.plot(x, y, 'go')
plt.title(r'$y=\cos(\pi \times x)$')
plt.show()

運(yùn)行輸出如圖所示。


下面進(jìn)行簡(jiǎn)要說(shuō)明。

  • import matplotlib.pyplot as plt

一般用到的就是pyplot,且按照慣例導(dǎo)入為plt。

  • plt.plot(x,y,'go')

這里就比較明確了,x、y是自變量和因變量數(shù)據(jù)。后面的'go'是對(duì)樣式的控制:其中g表示選擇綠色,o表示選擇點(diǎn)的方式顯示。更多參數(shù)設(shè)置可使用幫助命令help(plt.plot)進(jìn)一步學(xué)習(xí)。

  • plt.title(r'$y=\cos(\pi \times x)$')

為圖添加一個(gè)標(biāo)題。值得注意的是,這里使用了LaTeX的格式,因?yàn)?/span>matplotlib是兼容LaTeX的。這對(duì)書寫公式提供了極大的便利。讀者可能會(huì)遇到無(wú)法顯示中文的情況,這一點(diǎn)接下來(lái)會(huì)進(jìn)行專門的講解。

  • plt.show()

通過(guò)show來(lái)展示圖像,在pandas和seaborn中也使用這句代碼進(jìn)行圖像的展示操作。

這里只是創(chuàng)建了一個(gè)圖像,然后加了標(biāo)題,還可以通過(guò)其他的設(shè)置使得圖表信息更加豐富,也更加美觀。

首先看一下增強(qiáng)版本的代碼,如下所示。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-2, 2, 100)
y1 = np.cos(np.pi * x)
y2 = np.sin(np.pi * x)

plt.plot(x, y1, 'go',label=r'$y1=\cos(\pi \times x)$', alpha=0.8, linewidth=0.7)
plt.plot(x, y2, 'r-',label=r'$y2=\sin(\pi \times x)$', alpha=0.8, linewidth=0.7)

plt.annotate('Important Point', (0,1), xytext=(-1.5, 1.1),
               arrowprops=dict(arrowstyle='->'))

plt.xlabel('x-axis')
plt.ylabel('y-axis')

# 設(shè)置座標(biāo)范圍[xmin, xmax, ymin, ymax]
plt.axis([-2.1, 2.1, -1.2, 1.2])

# 顯示標(biāo)簽
plt.legend()
# 顯示網(wǎng)格
plt.grid(alpha=0.4)

plt.title('Two plots', color=(0.1,0.3, 0.5))
plt.show()

運(yùn)行輸出如圖所示。

下面進(jìn)行簡(jiǎn)要說(shuō)明。

  • alpha

alpha參數(shù)代表透明度,從0到1表示顏色逐漸加深。

  • linewidth

代表線條或者點(diǎn)的粗細(xì)程度。

  • axis

按照(xmin、xmax、ymin、ymax)的格式來(lái)限制座標(biāo)軸的范圍。

  • legend

在plot里面使用lable,記錄了當(dāng)前圖的圖例,可以通過(guò)調(diào)用legend使其顯示。在默認(rèn)情況下,圖例會(huì)顯示在最合適的空白處,當(dāng)然也可以手動(dòng)調(diào)節(jié)其位置。

  • grid

顯示背景網(wǎng)格線,也可以通過(guò)alpha參數(shù)設(shè)置其透明度。

  • color=(0.1, 0.3, 0.5)

在有些情況下,matplotlib自帶的顏色達(dá)不到效果,此時(shí)可以通過(guò)設(shè)置歸一化到[0,1]RGB元組來(lái)指定顏色。也可以使用HTML的十六進(jìn)制字符串,如'#eeefff'來(lái)指定顏色。


中文顯示問(wèn)題

在初次使用matplotlib時(shí)一般都會(huì)遇到無(wú)法顯示中文的問(wèn)題,無(wú)論是Windows還是Ubuntu之類的Linux系統(tǒng)。這里分別給出解決的辦法。

對(duì)于Windows,解決方法相對(duì)較為簡(jiǎn)單,只需要在開(kāi)頭處加上下面三行代碼,一般就可以了。

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] =['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus'] = False

對(duì)于Ubuntu系統(tǒng),需要手動(dòng)指定字體來(lái)實(shí)現(xiàn)中文的顯示。

設(shè)置代碼如下。

import matplotlib.pyplot as plt
import matplotlib as mpl
zhfont =mpl.font_manager.FontProperties(fname='/home/shensir/Downloads/Fonts/msyh.ttc')

plt.plot([1, 2, 3], label='標(biāo)簽')
plt.title('中文標(biāo)題', fontproperties=zhfont)
plt.xlabel('x軸', fontproperties=zhfont)
plt.ylabel('y軸', fontproperties=zhfont)
plt.legend(prop=zhfont)
plt.show()

運(yùn)行輸出如圖所示。

                           

注意:這里表示字體的.ttc文件是從Windows系統(tǒng)中拷貝過(guò)來(lái)的,可以放到任意路徑,通過(guò)程序指定其路徑即可。當(dāng)然讀者也可以從網(wǎng)上尋找其他永久設(shè)置的方法,由于大部分都比較煩瑣,這里就不展開(kāi)介紹了。

matplotlib的進(jìn)階使用

繪制子圖

下面介紹怎樣在一張圖上繪制多個(gè)子圖,代碼如下。

import numpy as np
import matplotlib.pyplot as plt

# 繪制子圖[subplot]
plt.style.use('ggplot')  # 設(shè)置繪圖風(fēng)格
x = np.linspace(-2, 2, 100)
y1 = np.sin(np.pi * x)
y2 = np.cos(np.pi * x)
y3 = np.tan(np.pi * x)
y4 = x

plt.subplot(221)
plt.plot(x, y1)

plt.subplot(222)
plt.plot(x, y2)

plt.subplot(223)
plt.plot(x, y3)

plt.subplot(224)
plt.plot(x, y4)

plt.show()

運(yùn)行輸出如圖所示。

下面進(jìn)行簡(jiǎn)要說(shuō)明。

  • plt.style.use('ggplot')

這里設(shè)置matplotlib的做圖的風(fēng)格為ggplot(熟悉R語(yǔ)言的讀者可能對(duì)此并不陌生,因?yàn)?/span>ggplot2包具有強(qiáng)大的可視化功能)。除此之外還有很多種其他的風(fēng)格,可以通過(guò)print(plt.style.available)查看。

  • plt.subplot(221)

這里subplot的參數(shù)221,應(yīng)當(dāng)分別解讀。22代表要繪制兩行兩列共四個(gè)子圖。1代表在第一位置做圖。這里的1可以看作(1,1),對(duì)應(yīng)的2、3、4可以看作座標(biāo)(12)、(21)、(2,2

繪制填充圖

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 500)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)

fig, ax = plt.subplots()
ax.fill(x, y)
plt.show()

運(yùn)行輸出如圖所示。


以上內(nèi)容選自《Python數(shù)據(jù)分析入門——從數(shù)據(jù)獲取到可視化》。想要了解更多的數(shù)據(jù)分析技術(shù)及Python實(shí)現(xiàn)嗎?可以點(diǎn)擊

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python可視化.1
如何使用Python中最強(qiáng)大的可視化工具M(jìn)atplotlib
matplotlib in Ipython Notebook
Python Matplotlib簡(jiǎn)易教程
Python繪圖
python數(shù)據(jù)分析工具之 matplotlib詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服