python读取excel画数据曲线
部分数据test.xlsx 两列,第一列为x, 第二列为y代码:# coding=utf-8import matplotlibmatplotlib.use('TkAgg')import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltimport sysimport xlrddef read_xlrd(excelF
·
文章目录
python读取excel画数据曲线
部分数据
test.xlsx 两列,第一列为x, 第二列为y
代码:
# coding=utf-8
import matplotlib
matplotlib.use('TkAgg')
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import sys
import xlrd
def read_xlrd(excelFile):
x=[]
y=[]
data = xlrd.open_workbook(excelFile)
table = data.sheet_by_index(0)
#print("rows:", table.nrows);
for rowNum in range(table.nrows):
rowVale = table.row_values(rowNum)
x.append(rowVale[0])
y.append(rowVale[1])
#print(rowVale[0], rowVale[1])
#for colNum in range(table.ncols):
#print(rowVale[colNum])
return x,y
x,y = read_xlrd(sys.argv[1])
plt.plot(x, y)
plt.grid(True) ##增加格点
plt.show()
执行
python3 show.py ./test.xlsx
注意这里python版本是3
另外matplotlib会有不显示的问题,所以要加matplotlib.use(‘TkAgg’), 不然matplotlib默认的后端无法显示。
示例图
在 Python 中可以使用以下几种方式来画曲线
一、使用 Matplotlib
Matplotlib 是一个广泛使用的 Python 绘图库,可以绘制各种类型的图形,包括曲线。
以下是一个简单的用 Matplotlib 绘制曲线的例子:
import numpy as np
import matplotlib.pyplot as plt
# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制曲线
plt.plot(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Sine Curve')
plt.show()
二、使用 Seaborn
Seaborn 是基于 Matplotlib 的高级数据可视化库,它提供了更简洁的接口和更美观的默认样式。
例如:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.sin(x)
sns.lineplot(x=x, y=y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Sine Curve with Seaborn')
plt.show()
三、使用 Plotly
Plotly 是一个强大的交互式绘图库,可以创建动态和交互式的图表。
以下是用 Plotly 绘制曲线的示例:
import plotly.graph_objects as go
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig = go.Figure(data=go.Scatter(x=x, y=y))
fig.update_layout(title='Sine Curve with Plotly', xaxis_title='X', yaxis_title='Y')
fig.show()
图像处理算法
图像处理中有许多常用算法,以下是一些主要的算法介绍:
图像滤波算法
- 均值滤波:通过计算图像中一个邻域内像素的平均值来替换当前像素值,以此达到平滑图像、去除噪声的目的。该算法简单快速,但在去除噪声的同时可能会使图像细节模糊。
- 高斯滤波:根据高斯函数对图像进行加权平均滤波。它对图像中的噪声有较好的抑制作用,同时能较好地保留图像的边缘信息,在实际应用中较为广泛。
边缘检测算法
- Sobel 算子:通过计算图像在水平和垂直方向上的梯度来检测边缘。该算子对噪声有一定的抑制能力,能够快速检测出图像的边缘,但对边缘的定位精度不是很高。
- Canny 算法:是一种较为经典的边缘检测算法,它首先对图像进行高斯滤波去噪,然后计算梯度幅值和方向,接着进行非极大值抑制,最后通过双阈值检测和连接来确定最终的边缘。Canny 算法检测出的边缘比较精确,且抗噪性能较好。
图像阈值分割算法
- 全局阈值分割:根据图像的灰度直方图,选择一个合适的阈值,将图像中的像素分为前景和背景两类。这种方法简单易行,但对于光照不均匀或背景复杂的图像,分割效果可能不理想。
- Otsu 算法:又称大津法,是一种自适应的全局阈值选择算法。它通过计算使类间方差最大的阈值来实现图像分割,能够自动找到最佳阈值,对具有双峰直方图的图像分割效果较好。
形态学处理算法
- 膨胀:将图像中的物体边界向外扩展,使物体的面积增大。常用于填补物体中的小孔或连接相邻的物体。
- 腐蚀:与膨胀相反,它将图像中的物体边界向内收缩,使物体的面积减小。可以用于去除图像中的噪声点或分离粘连的物体。
图像特征提取算法
- SIFT 算法:尺度不变特征变换算法,具有尺度不变性、旋转不变性和光照不变性等优点。它通过检测图像中的关键点,并计算关键点的描述子来提取图像的特征,常用于图像匹配、目标识别等领域。
- HOG 算法:方向梯度直方图算法,通过计算图像局部区域内的梯度方向直方图来描述图像的特征。该算法对物体的姿态和光照变化具有一定的鲁棒性,在行人检测等领域有广泛应用。
作者:帅得不敢出门
更多推荐
所有评论(0)