- 一、matplotlib
- 1. 相关代码操作
- 2. 相关代码
- 能将数据进行可视化,更直观的呈现
- 使数据更加客观、更具说服力
- 直接调用matplotlib中的pyplot中的plt
form matplotlib import pyplot as plt - 数据在x轴上和y轴上都是可迭代对象
x=[]
y=[] - 传入x,y并通过plot绘制出折现图
plt.plot(x,y)
plt.plot(x,y,label=’ ‘,color=’ ‘,linestyle=’ ‘,linewidth=’ ')
label:折现的名称
color:折线的颜色
linestyle:线段形式
linewidth:线条粗细 - 设置图片大小和清晰度:
fig=plt.figure(figsize=(20,8),dpi=80) - 调整x的刻度
_xticks_labels=[‘10点{}分’.format(i) for i in range(60)]
_xticks_labels+=[‘11点{}分’.format(i) for i in range(60)]
取步长,数字和字符串一一对应,数据的长度一样,rotation代表旋转度数 - 设置显示中文的永久方法
(1). 在python的安装目录中找到配置文件: %Python_Home%Libsite-packagesmatplotlibmpl-datamatplotlibrc (如,我的是在C:Python34Libsite-packagesmatplotlibmpl-data),用任意文本编辑器打开。
(2). 找到1font.family : sans-serif将其前面的#注释号去掉
(3).找到font.sans-serif :AR PL UMing CN, SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif将【AR PL UMing CN, SimHei】添加在最前面,其中AR PL UMing CN代表:宋体。SimHei代表:黑体。并将前面的#注释号去掉,重启编辑器后,便可显示中文了。
(4).同时需要更改axes.unicode_minus : False;使其值为False;否则无法显示负 - 设置x,y轴的label以及title
plt,xlabel()
plt.ylabel()
plt.title() - 绘制网格
plt.grid(alpha=’ ‘,linestyle=’:’)
alpha:为透明度,取值区间为0-1,越小越透明
linestyle:线段形式 - 绘制图例
plt.legend(loc=‘upper left’)
loc:代表图例添加的位置,可以是英文可以是数字 - 在执行程序的时候展示图
plt.show
#coding-utf-8
# 用列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况
from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager
#windos和linux设置字体的方式
# font = {'family' : 'Microsoft yahei',
# 'weight' : 'bold',
# 'size' : 'larger'}
# matplotlib.rc('font',**font)
#另外一种设置字体大小的方式
# my_font=font_manager.FontProperties(fname=r'C:/Windows/Fonts/msyh.ttf')
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.figure(figsize=(25,8),dpi=80)
#绘图
plt.plot(x,y)
#调整x的刻度
_xticks_labels=['10点{}分'.format(i) for i in range(60)]
_xticks_labels+=['11点{}分'.format(i) for i in range(60)]
#取步长,数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::3],_xticks_labels[::3],rotation=45)
#添加描述信息
plt.xlabel('时间')
plt.ylabel('温度 单位(摄氏度)')
plt.title('10点到12点每分钟的气温变化情况')
plt.show()
运行结果:
from matplotlib import pyplot as plt
import matplotlib
x=range(1,21)
y_1=[0,1,0,2,3,5,6,2,3,1,4,5,6,7,8,1,2,3,4,1]
y_2=[0,2,1,2,3,4,12,1,1,4,6,1,2,3,1,2,3,1,3,1]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y_1,label='自己',color='orange',linestyle=':',linewidth=7) #linestyle:线段形式,linewidth:线条粗细
plt.plot(x,y_2,label='同桌',color='cyan',linestyle='-.')
_xticks_labels=['{}岁'.format(i) for i in range(11,31)]
# _yticks_labels=[i/2 for i in range(0,20)]
plt.xticks(x,_xticks_labels)
# plt.yticks(range(0,9))
plt.xlabel('年龄')
plt.ylabel('交女朋友数量')
plt.title('列表a')
#绘制网格
plt.grid(alpha=0.5,linestyle=':') #alpha为透明度,取值区间为0-1,越小越透明
#添加图例(告诉别人那条线代表什么)
plt.legend(loc='upper left') #loc代表图例添加的位置,可以是英文可以是数字
plt.show()
运行结果:



