matplotlib—三種方法載入資料檔案進行視覺化
阿新 • • 發佈:2019-01-25
1.csv獲取資料
(1)匯入模組
from matplotlib import pyplot as plt
import numpy as np
import csv
#用來正常顯示中文標籤
plt.rcParams['font.sans-serif']=['SimHei']
#用來正常顯示負號
plt.rcParams['axes.unicode_minus']=False
(2)獲取資料
# 定義兩個空列表
x=[]
y=[]
# 開啟檔案
with open ('matplotlib-demo.csv') as csvfile:
plots = csv.reader(csvfile, delimiter=',' )
for row in plots:
x.append(int(row[0])) #將第一列資料新增到x列表
y.append(int(row[1])) #將第二列資料新增到y列表
x,y
([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [5, 3, 4, 7, 4, 3, 5, 7, 4, 4])
(3)畫折線圖
plt.plot(x,y,label='模擬資料')
plt.xlabel('x')
plt.ylabel('y')
plt.title('演示從檔案載入資料')
plt.legend()
2.url獲取網頁資料
(1)利用urllib載入介面資料
#載入網路介面資料
import json
import urllib
# 利用urllib載入介面資料
url='https://api.douban.com/v2/book/1220562'
data=urllib.request.urlopen(url).read().decode()
data
(2)將字串格式的json資料轉化成python字典
source_code = urllib.request.urlopen(url).read().decode()
formatdata=json.loads(source_code)
formatdata
(3)選取字典中key值為tags對應的資料
tags=formatdata['tags']
tags
(4)畫圖
x=[]
y=[]
for tag in tags:
# print('{}-------------{}'.format(tag['name'],tag['count']))
x.append(tag["name"])
y.append(tag["count"])
plt.plot(x,y,label="折線圖")
plt.show()
plt.bar(x,y, label="圖書搜尋熱詞")
plt.legend()
plt.xlabel('x軸-搜尋熱詞')
plt.ylabel('y軸-搜尋熱詞排名')
plt.title('圖書熱詞搜尋排名')
plt.show()
3.numpy獲取資料
(1) 用numpy載入csv資料檔案
x,y=np.loadtxt('matplotlib-demo.csv',delimiter=',',unpack=True)
x,y
(array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]),
array([5., 3., 4., 7., 4., 3., 5., 7., 4., 4.]))
(2)畫折線圖
plt.plot(x,y,label='折線圖')
plt.xlabel('x軸',fontsize=15) #fontsize設定標籤大小
plt.ylabel('y軸',fontsize=15)
plt.title('numpy簡化載入資料過程')
plt.legend()