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()

图像处理算法

图像处理中有许多常用算法,以下是一些主要的算法介绍:

图像滤波算法

  1. 均值滤波:通过计算图像中一个邻域内像素的平均值来替换当前像素值,以此达到平滑图像、去除噪声的目的。该算法简单快速,但在去除噪声的同时可能会使图像细节模糊。
  2. 高斯滤波:根据高斯函数对图像进行加权平均滤波。它对图像中的噪声有较好的抑制作用,同时能较好地保留图像的边缘信息,在实际应用中较为广泛。

边缘检测算法

  1. Sobel 算子:通过计算图像在水平和垂直方向上的梯度来检测边缘。该算子对噪声有一定的抑制能力,能够快速检测出图像的边缘,但对边缘的定位精度不是很高。
  2. Canny 算法:是一种较为经典的边缘检测算法,它首先对图像进行高斯滤波去噪,然后计算梯度幅值和方向,接着进行非极大值抑制,最后通过双阈值检测和连接来确定最终的边缘。Canny 算法检测出的边缘比较精确,且抗噪性能较好。

图像阈值分割算法

  1. 全局阈值分割:根据图像的灰度直方图,选择一个合适的阈值,将图像中的像素分为前景和背景两类。这种方法简单易行,但对于光照不均匀或背景复杂的图像,分割效果可能不理想。
  2. Otsu 算法:又称大津法,是一种自适应的全局阈值选择算法。它通过计算使类间方差最大的阈值来实现图像分割,能够自动找到最佳阈值,对具有双峰直方图的图像分割效果较好。

形态学处理算法

  1. 膨胀:将图像中的物体边界向外扩展,使物体的面积增大。常用于填补物体中的小孔或连接相邻的物体。
  2. 腐蚀:与膨胀相反,它将图像中的物体边界向内收缩,使物体的面积减小。可以用于去除图像中的噪声点或分离粘连的物体。

图像特征提取算法

  1. SIFT 算法:尺度不变特征变换算法,具有尺度不变性、旋转不变性和光照不变性等优点。它通过检测图像中的关键点,并计算关键点的描述子来提取图像的特征,常用于图像匹配、目标识别等领域。
  2. HOG 算法:方向梯度直方图算法,通过计算图像局部区域内的梯度方向直方图来描述图像的特征。该算法对物体的姿态和光照变化具有一定的鲁棒性,在行人检测等领域有广泛应用。
    作者:帅得不敢出门
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐