matplotlib绘图与实战以及pyecharts的简单使用
首先,导入需要的模块
import numpy as np
import matplotlib.pyplot as plt
# 用 处理中文,正常显示
plt.rcParams['font.sans-serif']=['SimHei']
#处理 负号,正常显示
plt.rcParams['axes.unicode_minus']=False
import pandas as pd
from pandas import Series,DataFrame
实战1-制作季度销售表
其中,横坐标为1-4个季度,显示网格,填写标题,设置图柱上面的文字
# 取出一张图纸
plt.figure(1)
#确定图像的位置
#subplot(xyz),长宽,画布的第几个
ax1 = plt.subplot(111)
#准备数据
data = np.array([15,20,18,25])
x_bar = np.arange(4)
rect = ax1.bar(x=x_bar,height=data,width=0.5,color='#add86e')
#使用循环,给每一个柱子设置文字的起点位置
for i in rect:
x = i.get_x()
#print(x)
height = i.get_height()
#print(height)
#设置 bar柱上的文字
#语法: ax1.text(x,y,str)
ax1.text(x+0.15,height+0.2,str(height)+'W')
#设置x轴
ax1.set_xticks(x_bar)
ax1.set_xticklabels(["第一季度","第二季度","第三季度","第四季度"])
#ax1.set_xlabel和plt_xlabel是一样的含义
ax1.set_ylabel('销售(单位:万/件)')
ax1.set_title("2017季度销售表")
ax1.grid(True)#显示网格
ax1.set_ylim(0,30)#设置y轴的范围
plt.show()
结果显示:
同画布上绘制多图形
在同一块画布上创建两个图形
#新建一张画布
#设置画布大小,以及像素
plt.figure(figsize=(6,6),dpi=80)
plt.figure(1)
plt.subplot(211)#划分eow column 以及 index定位
plt.plot([1,2,3],[1,2,3])
plt.title("画板1:画布1")
plt.subplot(212)
plt.plot([1,2,3],[1,2,3])
plt.title("画板1:画布2")
结果显示:
加载文件并绘图
打开所需要的文件,并对其图形化显示
import csv
x=[]
y=[]
with open("matplotlib数据/csv/matplotlib-demo.csv","r") as csvfile:
lines=csv.reader(csvfile,delimiter=",")
for each in lines:
#别忘了将str转换为int
x.append(int(each[0]))
y.append(int(each[1]))
#编写图例
plt.plot(x,y,label="csv数据")
plt.title("从文件中加载数据并显示")
#显示图例
plt.legend()
plt.ylim(0,9)#设置y轴的范围
plt.xlim(0,9)
plt.show()
结果显示:
从网络api加载数据并绘图
import urllib
import json
url='https://api.douban.com/v2/book/1220562'
json_object=urllib.request.urlopen(url).read().decode()
data=json.loads(json_object)
tags=data["tags"]
print(tags)
x=[]
y=[]
for each in tags:
x.append(each["name"])
y.append(each["count"])
plt.bar(x,y,label="图书搜索热词")
plt.legend()
plt.xlabel("搜索的词条")
plt.ylabel("搜索排名")
plt.show()
使用numpy简化代码
以上代码可以简化成以下形式
x,y=np.loadtxt("matplotlib数据/csv/matplotlib-demo.csv",delimiter=",",unpack=True)
#编写图例
plt.plot(x,y,label="csv数据")
plt.title("从文件中加载数据并显示")
#显示图例
plt.legend()
plt.ylim(0,9)#设置y轴的范围
plt.xlim(0,9)
plt.show()
s=Series(