79 Matplotlib和資料視覺化

2022-06-13 18:30:18 字數 2592 閱讀 1308

import

matplotlib.pyplot as plt

defmain():

#儲存x軸資料的列表

x_values = [x for x in range(1, 11)]

#儲存y軸資料的列表

y_values = [x ** 2 for x in range(1, 11)]

#設定圖表的標題以及x和y軸的說明

plt.title("

square numbers")

plt.xlabel(

"value

", fontsize=16)

plt.ylabel(

"square

", fontsize=16)

#設定刻度標記的文字大小

plt.tick_params(axis="

both

", labelsize=12)

#繪製折線圖

plt.plot(x_values, y_values)

plt.show()

if__name__ == '

__main__':

main()

可以將上面**中的的plot函式換成scatter函式來繪製散點圖,效果如下圖所示。

import

matplotlib.pyplot as plt

defmain():

#儲存x軸資料的列表

x_values = [x for x in range(1, 11)]

#儲存y軸資料的列表

y_values = [x ** 2 for x in range(1, 11)]

#設定圖表的標題以及x和y軸的說明

plt.title("

square numbers")

plt.xlabel(

"value

", fontsize=16)

plt.ylabel(

"square

", fontsize=16)

#設定刻度標記的文字大小

plt.tick_params(axis="

both

", labelsize=12)

#繪製折線圖

plt.scatter(x_values, y_values)

plt.show()

if__name__ == '

__main__':

main()

當然,也可以直接通過plot函式設定繪圖的顏色和線條的形狀將折線圖改造為散點圖,對應的**如下所示,其中引數'xr'表示每個點的記號是『x』圖形,顏色是紅色(red)。

plt.plot(x_values, y_values, "

xr")

1和10對應的『x』記號在圖形邊角的位置不太明顯,要解決這個問題可以通過新增下面的**調整x軸和y軸的座標範圍。

plt.axis([0, 12, 0, 120])

向量圖(svg)是計算機圖形學中用點、直線或者多邊形等基於數學方程的幾何圖元表示的影象,也是目前應用得非常多的一種影象檔案格式,全稱是「scalable vector graphics」。和使用畫素表示影象的點陣圖不同,svg基於xml儲存影象資料,它是w3c定義的一種開放標準的向量圖形語言,可以用來設計更為清晰的web影象,因為svg與解析度無關,在任意放大時不會丟失細節或影響清晰度。svg可以直接用**來描繪影象,也可以用任何文書處理工具來開啟它,通過改變svg的**我們可以讓影象具備互動功能。

python中可以使用pygal來生成svg,可以通過pip來安裝它。

from random import

randint

import

pygal

def roll_dice(n=1):

total =0

for _ in

range(n):

total += randint(1, 6)

return

total

defmain():

results =

#將兩顆篩子搖10000次記錄點數

for _ in range(10000):

face = roll_dice(2)

freqs =

#統計2~12點各出現了多少次

for value in range(2, 13):

freq =results.count(value)

#繪製柱狀圖

hist =pygal.bar()

hist.title = "

result of rolling two dice

"hist.x_labels = [x for x in range(2, 13)]

hist.add(

"frequency

", freqs)

#儲存向量圖

hist.render_to_file("

result.svg")

if__name__ == '

__main__':

main()

Matplotlib 資料視覺化

資料視覺化,更有意義的說法是,data communication for audiences。matplotlib總是因為它的aesthetics和amounts of codes被些許詬病。然而,我覺得熟練的使用之後,它的靈活性還是比較強的 相比ggplot 所以這篇文章的適合讀者是 具體的實現...

資料視覺化 matplotlib

直方圖plt.hist 資料,分組數,density true 複製 條形圖plt.bar x,y,color 顏色 plt.barh 複製 散點圖plt.scatter x,y 複製 折線圖 繪製多個圖形,多次plot plt.plot x,y,label 標籤 複製 通用操作plt.figure...

資料探勘基礎 初步認識 matplotlib

實現乙個簡單的 matplotlib 畫圖 shift enter 執行 matplotlib 三層結構 容器層 容器層由canvas figure axes三部分組成 canvas 位於最底層的系統層,充當畫板,即放置figure的工具 figure 是canvas上方的第一層,也是需要使用者來操...