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
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)
plt.ylabel('y轴',fontsize=15)
plt.title('numpy简化加载数据过程')
plt.legend()