1. 程式人生 > >matplotlib—三種方法載入資料檔案進行視覺化

matplotlib—三種方法載入資料檔案進行視覺化

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

這裡寫圖片描述