Python读取excel文件中的数据,绘制折线图、散点图

article/2025/9/1 10:33:55

https://www.cnblogs.com/liulinghua90/p/9935642.html

https://blog.csdn.net/qq_32458499/article/details/78189106

目的:读取excel文件中的数据,绘制折线图、散点图

安装环境:

由于我使用的是 Anaconda 集成的环境 所以不用安装模块,直接导入就行

import pandas as pd
import matplotlib.pyplot as plt

绘制简单折线

  •  pandas操作Excel表单

  数据准备,有一个Excel文件:lemon.xlsx有两个表单,表单名分别为:Python 以及student,

Python的表单数据如下所示:

 

student的表单数据如下所示:

 1:在利用pandas模块进行操作前,可以先引入这个模块,如下:

import pandas as pd

 2:读取Excel文件的两种方式:

#方法一:默认读取第一个表单
df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单
data=df.head()#默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data))#格式化输出

得到的结果是一个二维矩阵,如下所示:

#方法二:通过指定表单名的方式来读取
df=pd.read_excel('lemon.xlsx',sheet_name='student')#可以通过sheet_name来指定读取的表单
data=df.head()#默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data))#格式化输出

得到的结果如下所示,也是一个二维矩阵:

#方法三:通过表单索引来指定要访问的表单,0表示第一个表单
#也可以采用表单名和索引的双重方式来定位表单
#也可以同时定位多个表单,方式都罗列如下所示
df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通过表单名同时指定多个
# df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通过表单索引来指定读取的表单
# df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式来指定
# df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通过索引 同时指定多个
data=df.values#获取所有的数据,注意这里不能用head()方法哦~
print("获取到所有的值:\n{0}".format(data))#格式化输出

pandas操作Excel的行列

1:读取指定的单行,数据会存在列表里面

#1:读取指定行
df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单
data=df.ix[0].values#0表示第一行 这里读取数据并不包含表头,要注意哦!
print("读取指定行的数据:\n{0}".format(data))

得到的结果如下所示:

2:读取指定的多行,数据会存在嵌套的列表里面:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2]].values#读取指定多行的话,就要在ix[]里面嵌套列表指定行数
print("读取指定行的数据:\n{0}".format(data))

3:读取指定的行列:

df=pd.read_excel('lemon.xlsx')
data=df.ix[1,2]#读取第一行第二列的值,这里不需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

4:读取指定的多行多列值:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2],['title','data']].values#读取第一行第二行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

5:获取所有行的指定列

df=pd.read_excel('lemon.xlsx')
data=df.ix[:,['title','data']].values#读所有行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

6:获取行号并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出行号列表",df.index.values)输出结果是:
输出行号列表 [0 1 2 3]

7:获取列名并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出列标题",df.columns.values)运行结果如下所示:
输出列标题 ['case_id' 'title' 'data']

8:获取指定行数的值:

df=pd.read_excel('lemon.xlsx')
print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法输出值[[2 '输入错误的密码' '{"mobilephone":"18688773467","pwd":"12345678"}'][3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}'][1 '正常登录' '{"mobilephone":"18688773467","pwd":"123456"}']]

9:获取指定列的值:

df=pd.read_excel('lemon.xlsx')
print("输出值\n",df['data'].values)

pandas处理Excel数据成为字典

 我们有这样的数据,,处理成列表嵌套字典,且字典的key为表头名。

实现的代码如下所示:

df=pd.read_excel('lemon.xlsx')
test_data=[]
for i in df.index.values:#获取行号的索引,并对其进行遍历:#根据i来获取每一行指定的数据 并利用to_dict转成字典row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()test_data.append(row_data)
print("最终获取到的数据是:{0}".format(test_data))

最后得到的结果是:

最终获取到的数据是:
[{'title': '正常登录', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, 
{'title': '输入错误的密码', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, 
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, 
{'title': '充值输入负数', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

1、绘制简单折线图

所用数据

# -*- coding: utf-8 -*-
"""
Created on Tue Sep 29 18:24:14 2020@author: chenj
"""
# 导入 pandas 和 matplotlib
import pandas as pd
import matplotlib.pyplot as plt# 读取文件
# =============================================================================
# 可能遇到的问题 路径分隔符 建议用“/”或“\\”  读取桌面文件时 用“\”可能会失败 
# =============================================================================
data_source = pd.read_excel('F:/南师2020作业/人工智能/datas.xlsx')
# 函数plot()尝试根据数字绘制出有意义的图形
print(data_source['datas'])
plt.plot(data_source['datas'])

2、绘制简单散点图

使用scatter绘制散点图并设置其样式

1)绘制单个点,使用函数scatter,并向它传递x,y坐标,并可使用参数s指定点的大小

plt.scatter(2,4,s=20)
2)绘制一系列点,向scatter传递两个分别包含x值和y值的列表

x_values=[1,2,3,4,5]
y_values=[1,4,9,16,25]
plt.scatter(x_values,y_values,s=20)

3)设置坐标轴的取值范围:函数axis()要求提供四个值,x,y坐标轴的最大值和最小值

plt.axis([0,1100,0,1100000])

4)使用参数edgecolor在函数scatter中设置数据点的轮廓

plt.scatter(x_values,y_values,edgecolor='black',s=20)

当参数值为'none'时不使用轮廓

5)向scatter传递参数c,指定要使用的颜色

可使用颜色名称,或者使用RGB颜色模式自定义颜色,元组中包含三个0~1之间的小数值,分别表示红绿蓝颜色分量。

plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=20)为由浅蓝色组成的散点图
6)使用颜色映射
颜色映射是一系列颜色,它们从起始颜色渐变到结束颜色,在可视化中颜色映射用于突出数据的规律。
例如,可用较浅的颜色表示较小的数值,较深的颜色表示较大的数值。
模块pyplot内置了一组颜色映射,要使用颜色映射,需要告诉pyplot如何设置数据集中每个点的颜色。

plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=40)
plt.title("Square numbers",fontsize=24)

我们将参数c设置成了一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射。这些代 
码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。
7)自动保存图表:使用函数plt.savefig()

plt.savefig('D:/www/figure.png',bbox_inches='tight')

第一个参数是文件名,第二个参数指定将图表多余的空白区域减掉,如果要保留图表周围多余的空白区域,可省略这个实参。


8)设置绘图窗口尺寸
函数figure用于指定图表的宽度、高度、分辨率和背景色。

形参figsize指定一个元组,向matplotlib指出绘图窗口的尺寸,单位为英寸。
形参dpi向figure传递分辨率,默认为80

plt.figure(dpi=128,figsize=(10,6))

9)实例程序

#a.py
import matplotlib.pyplot as plt
x_values=list(range(1,1001))
y_values=[x**2 for x in x_values]
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=40)
plt.title("Square numbers",fontsize=24)
plt.xlabel("value",fontsize=24)
plt.ylabel("Square of Value",fontsize=24)
plt.tick_params(axis='both',labelsize=14)
plt.axis([0,1100,0,1100000])
plt.savefig('D:/www/figure.png',bbox_inches='tight')
plt.show()
# 导入 pandas 和 matplotlib
import pandas as pd
import matplotlib.pyplot as plt
# 导入中文显示库函数
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)# 读取文件
df = pd.read_excel("F:/南师2020作业/人工智能/datas.xlsx")
# 输出数据行数
print("数据行数:" , len(df))
'''
由于只有一列数据我们使用 excel 行号作为 x 值的列表
用range()函数来创建一个列表 [1,24)
range()函数 遍历数字序列
'''
x = list(range(1,len(df)+1)) #[1,24)
# 读取指定的单列也就是 datas列,数据会存在列表里面
y = df['datas']
# for 循环输出数据行数
for a in (list(range(1,len(df)+1))):print('行号:'+str(a)) #将int类型的a 转换为字符串#设置 x值 和y值的列表
plt.scatter(x,y)
# 图表名称
plt.title('散点图',fontproperties=font_set)
# 设置x轴名称
plt.xlabel("X")
# 设置y轴名称
plt.ylabel("Y")
plt.show()


http://chatgpt.dhexx.cn/article/edWf1C4E.shtml

相关文章

用Excel制作一个漂亮的分类散点图

前段时间在朋友圈发了一个散点图,好多朋友说很漂亮,想要学习制作方法,今天小编就为大家解析这个散点图的做法。我们先来看看这个散点图: 这个散点图一共分为四类,每一类按照顺序进行散点图的绘制,不同类别使…

统计图表之散点图

目录 1. 散点图1.1 常用参数2. 进阶图2.1 气泡图2.2 边缘直方图 1. 散点图 散点图用于查看两个变量之间的关系, import pandas as pd import matplotlib.pyplot as plt %matplotlib inlinedata pd.read_excel(data.xlsx) change data.Open - data.Close x chang…

EXCEL散点图改横轴坐标

通常我们看到的散点图可以是X轴是文字,Y轴是数字,当我们真正在Excel中编辑的时候却发现如下图这样的,X轴上直接都是数字: 那怎么可以实现X轴上是文字呢? 操作步骤: 在原数据后面添加辅助数据,如…

excel绘制折线图或者散点图

一、背景 假如现在通过代码处理了一批数据,想看数据的波动情况,是不是还需要写个pyhon代码,读取文件,绘制曲线,看起来也简单,但是还有更简单的方法,就是直接生成csv文件,csv文件就是…

MATLAB导入EXCEL表格数据画散点图

在处理一些实验数据时,通常要画散点图,本来EXCEL自带的散点图功能也很好,但是为了秀一下,我们也要用到MATLAB来画图,下面来介绍一下实现方法。 如果你第一次使用MATLAB,那就要从头开始介绍了。 首先来新建…

Excel数据分析—散点图/气泡图

散点图:又称XY散点图,将数据以点的形式展现,以显示变量间的相互关系或者影响程度,点的位置由变量的数值决定。 ■ 场景:显示若干数据系列中各数值之间的关系,类似XY轴,判断两变量之间是否存在某…

excel 散点图添加颜色

当我们利用excel画散点图时,假如数据除了下x,y轴数据外,还有第三种属性数据,那么我们就需要赋予每个散点不同的颜色或者大小来实现第三种属性数据的区分,这里我介绍一个通过颜色来分区第三属性的方法,类似于MATLAB的co…

Excel中的散点图这么强大,学习了!

全世界只有3.14 % 的人关注了 数据与算法之美 平时见得最多的也许是柱形图了,但我个人最喜欢的却是散点图。在讲散点图之前,我先阐述一个不太严谨的个人观点。我认为,所有的数据图表都可以分为两类,一类是偏重于展示,一…

Excel 绘制多数据散点图

利用Excel 绘多数据单散点图 步骤 主要操作步骤图解等 请参考 Excel 绘制简单散点图 不同的地方,就是一次选择3组数据。然后单独调节每一组元素标签。对每组数据选择不同的数据标签类型。 同理对X 设置边界为0~55,主要单位为10,次要单位为5…

Excel 绘制简单散点图

最终结果 第一步 选择数据,插图散点图。双击 Y 坐标轴数值,将“线条”设置为“无线条”,选定“坐标轴选项”的边界设置为 0~3500,主要单位为 1000,次要单位为 500(根据自己数据大小来设置) 第二…

Excel制作散点图,四象限图,设置标签

先看结果: 是不是想要这样的效果,Excel完全阔以。看下面步骤: 1、制作基础散点图 选择目标数据区域,点击【插入】—>【散点图】第一个图形。此时做出了基础的散点图; 2、调整轴位置,或者叫轴心 Excel…

Excel图表8——矩阵图(散点图)

Excel图表8——矩阵图(散点图) 实例 原数据 一、计算平均值 二、插入图表 1.插入仅带数据标记的散点图(数据:满意度) 2.删除图例、网格线 3.调整横纵坐标范围 三、添加矩阵图的象限分割线 1.设置横坐标轴格式 2.设…

Excel绘制带象限散点图的4种办法

散点图经常要绘制成4个象限的样子,以对各数据点所处的位置分别进行评判,这里总结用Excel绘制这样的散点图的4种办法。 样例数据如下: 方法一:设置坐标轴格式,将横、纵坐标交叉于指定的刻度 首先用系统的模板绘制出散点…

VUE 实现购物车或者消息中心未读消息数量的实时监听

涉及到商城,平台等项目一般都会有实时数据的更新问题,比如这种: 下面是我的处理方式:全局绑定一个方法 Vue.prototype.$addStorageEvent function (type, key, data) {if (type 1) {// 创建一个StorageEvent事件var newStorag…

消息中心设计模式UML图

简单描述下在一家公司消息中心组件对不同消息设备处理,简要类图如下 说明根据设备来源已有的包含安卓,苹果,微信公众号,支付宝服务窗4种: IMessagePush:推送业务接口 IDbOperations:消息持久化…

消息中心架构设计

转载于:https://www.cnblogs.com/lilunjia/p/8797399.html

ActiveMQ:消息中心基本介绍

Redis其实也可以做消息队列,但是更多的企业选择了ActiveMQ,为什么,因为Redis的消息队列比较简单,无法做到像ActiveMQ,那样做做到点对点的消息订阅与发送 首先是哪些情况需要用到消息中心? 1.需要解耦出来的…

业务消息中心系统设计与实现(一)

目录 解决问题场景? 那么这款内部业务消息中心需要满足哪些功能呢? 哈喽小伙伴,我是kilde,和有需要的小伙伴分享一个业务消息中心的设计思想与实现,喜欢的小伙伴可以点赞关注博主,觉得有用的也可以打赏博主哦,也希望这个博客能给各位有需要的小伙伴或多或少解决一些场景问题…

仿微博消息中心的系统设计与实现

最近在实现一个类似于微博、网易云的消息中心模块。主要实现的功能是,将系统中的点赞、评论、等消息做汇合。今天跟大家分享下,我们的设计和实现思路。 首先说明,我们目前是微服务的架构。所以本篇文章中对于消息中心的设计也是建立在微服务的…

消息中心构架设计说明书

目录 1 1. 文档介绍.... 4 1.1 文档目的... 4 1.2 文档范围... 4 1.3 读者对象... 4 1.4 参考文献... 4 1.5 术语与缩写解释... 4 2 系统概述.... 5 3 设计约束.... 6 4 设计策略.... 7 5 系统总体结构.... 8 6 …