一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【免費贈書】Python如何實現(xiàn)數(shù)據(jù)可視化?

 太極混元天尊 2018-05-26


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


基本操作


先看一個示例代碼來了解一張圖的組成部分,如下所示。

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()

運行輸出如圖所示。


下面進行簡要說明。

  • import matplotlib.pyplot as plt

一般用到的就是pyplot,且按照慣例導入為plt。

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

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

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

為圖添加一個標題。值得注意的是,這里使用了LaTeX的格式,因為matplotlib是兼容LaTeX的。這對書寫公式提供了極大的便利。讀者可能會遇到無法顯示中文的情況,這一點接下來會進行專門的講解。

  • plt.show()

通過show來展示圖像,在pandas和seaborn中也使用這句代碼進行圖像的展示操作。

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

首先看一下增強版本的代碼,如下所示。

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è)置座標范圍[xmin, xmax, ymin, ymax]
plt.axis([-2.1, 2.1, -1.2, 1.2])

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

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

運行輸出如圖所示。

下面進行簡要說明。

  • alpha

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

  • linewidth

代表線條或者點的粗細程度。

  • axis

按照(xmin、xmax、ymin、ymax)的格式來限制座標軸的范圍。

  • legend

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

  • grid

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

  • color=(0.1, 0.3, 0.5)

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


中文顯示問題

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

對于Windows,解決方法相對較為簡單,只需要在開頭處加上下面三行代碼,一般就可以了。

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

對于Ubuntu系統(tǒng),需要手動指定字體來實現(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='標簽')
plt.title('中文標題', fontproperties=zhfont)
plt.xlabel('x軸', fontproperties=zhfont)
plt.ylabel('y軸', fontproperties=zhfont)
plt.legend(prop=zhfont)
plt.show()

運行輸出如圖所示。

                           

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

matplotlib的進階使用

繪制子圖

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

import numpy as np
import matplotlib.pyplot as plt

# 繪制子圖[subplot]
plt.style.use('ggplot')  # 設(shè)置繪圖風格
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()

運行輸出如圖所示。

下面進行簡要說明。

  • plt.style.use('ggplot')

這里設(shè)置matplotlib的做圖的風格為ggplot(熟悉R語言的讀者可能對此并不陌生,因為ggplot2包具有強大的可視化功能)。除此之外還有很多種其他的風格,可以通過print(plt.style.available)查看。

  • plt.subplot(221)

這里subplot的參數(shù)221,應當分別解讀。22代表要繪制兩行兩列共四個子圖。1代表在第一位置做圖。這里的1可以看作(1,1),對應的23、4可以看作座標(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()

運行輸出如圖所示。


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

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    亚洲成人黄色一级大片| 超碰在线免费公开中国黄片| 免费在线成人午夜视频| 精品国产亚洲免费91| 成人日韩在线播放视频| 亚洲国产香蕉视频在线观看| 日本精品中文字幕在线视频| 男生和女生哪个更好色| 亚洲男人天堂网在线视频| 91超频在线视频中文字幕| 国产精品制服丝袜美腿丝袜| 精品视频一区二区不卡| 国产免费无遮挡精品视频| 91亚洲熟女少妇在线观看| 人妻少妇久久中文字幕久久| 国产av一区二区三区麻豆| 亚洲一区二区三区四区性色av| 中文字幕在线五月婷婷| 色丁香之五月婷婷开心| 色婷婷人妻av毛片一区二区三区| 儿媳妇的诱惑中文字幕| 国产不卡视频一区在线| 黑人粗大一区二区三区| 人人妻人人澡人人夜夜| 欧洲精品一区二区三区四区| 成年男女午夜久久久精品| 粗暴蹂躏中文一区二区三区| 日韩欧美中文字幕av| 激情图日韩精品中文字幕| 加勒比东京热拍拍一区二区| 中文字幕久热精品视频在线| 亚洲一区二区亚洲日本| 高清亚洲精品中文字幕乱码| 日韩色婷婷综合在线观看| 久久国产精品亚州精品毛片| 欧美日韩乱码一区二区三区| 欧美日韩亚洲精品内裤| 欧美日韩综合在线精品| 国产熟女高清一区二区| 国产传媒欧美日韩成人精品| 国产欧美一区二区三区精品视|