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

这里写图片描述

猜你喜欢

转载自blog.csdn.net/MESSI_JAMES/article/details/80849438