matplotlip 绘图与可视化基础

axis,指的是x轴或y 轴这种坐标轴
通过下面的小例子,我们看一下matplotlip 该如何简单的使用

例:我想统计excel 表中7月的收益变化情况图,现在我们值统计利润这一列数据。

在这里插入图片描述

第一步:.先打开excel 表并读取所需要的两列数据。

import xlrd
#导入xlrd模块
data = xlrd.open_workbook(r'F:\desktop\7月收益详情.xlsm') 
#打开excel文件
data.sheet_names()
print('sheet:'+str(data.sheet_names())) 
table1 = data.sheet_by_index(0)
col1 = table1.col_values(0)
col2 = table1.col_values(4)
print(col1)
print(col2)

输出结果为:

sheet:['Sheet1']
['日期', 44013.3338310185, 44014.3338310185, 44015.0, 44016.0, 44017.0, 44018.0, 44019.0, 44020.0, 44021.0, 44022.3338310185, 44023.3338310185, 44024.3338310185, 44025.3338310185, 44026.3338310185, '总计']
['利润', 272.93506, 494.53627, -416.0265, 151.18887, 157.20418, 374.77467, 347.14092, 839.02575, 124.39409, 1614.3919, 1583.78108, 1656.50763749638, 725.65582, 1653.79991, 9579.3096574964]

第二步 :接着用的到的数据绘图。

from matplotlib import pyplot as plt    #导入pyplot
x = [ 44013.3338310185, 44014.3338310185, 44015.0, 44016.0, 44017.0, 44018.0, 44019.0, 44020.0, 44021.0, 44022.3338310185, 44023.3338310185, 44024.3338310185, 44025.3338310185, 44026.3338310185]  #数据在x轴的位置,是一个可迭代对象
y =[ 272.93506, 494.53627, -416.0265, 151.18887, 157.20418, 374.77467, 347.14092, 839.02575, 124.39409, 1614.3919, 1583.78108, 1656.50763749638, 725.65582, 1653.79991]  #数据在y轴的位置,是一个可迭代对象
#x轴和y轴的数据一起组成了所有要绘制的坐标(2,15)(4,13)....
plt.plot(x,y)     #传入x和y,通过plot绘制出折线图
plt.show()#展示图形

在这里插入图片描述
这样看matplotlip帮助我们生成的图片还有很多要改进的地方,如下:

  1. 设置图片的大小
  2. 保存到本地
  3. 描述信息,比如坐标轴代表的什么,表头
  4. 调整坐标轴的刻度间距
  5. 线条的样式(颜色,透明度等)
  6. 标记出特殊点(最高点最低点等)
  7. 给图片加水印
1. 设置图片的大小

在画之前设置图片的大小,

  • figsize=(20,8),表示图片,宽20高8
  • dpi=80 ,表示图片的清晰度,dpi的值越大越清晰
fig =plt.figure(figsize(20,8),dpi =80)
2. 保存到本地
plt.savefig("./sig_size.png")     #文件名加格式
3. 设置图片的刻度
plt.xticks(x)     #最简单的是把给定的x轴上的数,都显示在x轴上
plt.xticks(range(2,25,2))   #按步长来设置轴的刻度
plt.yticks(range(min(y),max(y)+1))    #y轴通常是最大最小值

第三步:执行如下代码

from matplotlib import pyplot as plt  
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.figure(figsize=(15,8) )
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x = ['7月1日', '7月2日', '7月3日', '7月4日','7月5日', '7月6日', '7月7日', '7月8日','7月9日','7月10日', '7月11日', '7月12日', '7月13日', '7月14日']  #数据在x轴的位置,是一个可迭代对象
y =[272.93506, 494.53627, -416.0265, 151.18887, 157.20418, 374.77467, 347.14092, 839.02575, 124.39409, 1614.3919, 1583.78108, 1656.50763749638, 725.65582, 1653.79991]
#数据在y轴的位置,是一个可迭代对象
plt.title('7月利润变化图')
plt.xlabel('时间')
plt.ylabel('利润 单位(元)')
plt.plot(x,y)     #传入x和y,通过plot绘制出折线图
plt.show()   #展示图形

在这里插入图片描述

第四步.给表加上数据和表格

plt.grid() #给表格加上网格,设置图片的透明度,用到alpha=1#默认为1
plt.grid(alpha=0.4) #降低表格的透明度

from matplotlib import pyplot as plt  
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.figure(figsize=(20,8) )
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x = ['7月1日', '7月2日', '7月3日', '7月4日','7月5日', '7月6日', '7月7日', '7月8日','7月9日','7月10日', '7月11日', '7月12日', '7月13日', '7月14日','7月15日']  #数据在x轴的位置,是一个可迭代对象
y =[272.94,494.54, -416.03, 151.19, 157.20, 374.78, 347.14, 834.37, 124.44, 1614.52, 1583.79, 1768.048, 847.73, 1788.86, 1004.16]
#数据在y轴的位置,是一个可迭代对象
plt.plot(x, y, label='利润金额', linewidth=3, color='snow', marker='o',
         markerfacecolor='blue', markersize=11 )
for a, b in zip(x, y):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=18)
plt.title('7月利润变化图')
plt.xlabel('时间')
plt.ylabel('利润 单位(元)')
plt.plot(x,y)     #传入x和y,通过plot绘制出折线图
plt.grid()      #给数据加上表格
plt.show()   #展示图形

在这里插入图片描述

第五步.保存图片

plt.savefig("2.png")

在此说明,方法一:直接写自己想要命名的“文件名+格式”即可,系统会自动保存到桌面。方法二:在桌面新建文本文档,改为想要的格式,并命名。在代码中输入文件名。即可。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值