当前位置: 首页 > news >正文

第七篇【传奇开心果系列】Python微项目技术点案例示例:数据可视化界面图形化经典案例

传奇开心果微博系列

  • 系列微博目录
    • Python微项目技术点案例示例系列
  • 微博目录
    • 一、微项目开发背景和项目目标:
    • 二、雏形示例代码
    • 三、扩展思路介绍
    • 四、数据输入示例代码
    • 五、数据分析示例代码
    • 六、排名统计示例代码
    • 七、数据导入导出示例代码
    • 八、主题定制示例代码
    • 九、数据过滤示例代码
    • 十、数据比较示例代码
    • 十一、界面优化示例代码
    • 十二、面向对象更新优化程序示例代码
    • 十三、归纳总结

系列微博目录

Python微项目技术点案例示例系列

微博目录

一、微项目开发背景和项目目标:

在这里插入图片描述
在这里插入图片描述在学校或培训班,教学管理头绪繁杂,分析报告枯燥乏味。如果能编写一个程序实现数据可视化,界面图形化,那就可以让数据形象直观生动起来,变得有趣生动,而且有灵魂。于是我灵感顿悟就有了写一个数据可视化界面图形化示例的想法。我打算使用Python的nicegui库创建界图形化界面面来进行学生成绩排名统计分析,使用Python数据可视化库绘制图表展示数据,从而实现数据可视化示例代码,并进行逐步扩展编程,完成比较完整完美示例代码。

二、雏形示例代码

在这里插入图片描述下面是一个简单的示例代码

import nicegui as ng
import matplotlib.pyplot as plt# 模拟学生成绩数据
students = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
grades = [85, 70, 90, 65, 75]# 创建界面
with ng.box():ng.text('学生成绩排名统计分析')ng.plot(grades, title='学生成绩折线图', xlabel='学生', ylabel='成绩')# 绘制折线图
plt.plot(students, grades)
plt.xlabel('学生')
plt.ylabel('成绩')
plt.title('学生成绩折线图')
plt.show()

在这个示例中,我们首先模拟了一些学生某单一学科成绩数据或总分成绩数据或平均分成绩数据,然后使用nicegui库创建了一个界面来展示学生成绩的折线图。在界面中,我们展示了学生成绩的折线图,并使用matplotlib库来绘制了实际的折线图。您可以根据需要对代码进行修改和扩展,以满足您的具体需求。

三、扩展思路介绍

在这里插入图片描述当涉及到学生成绩排名统计分析和折线图展示的项目时,可以进一步扩展思路来增强功能和用户体验。以下是一些扩展思路的介绍:

  1. 数据输入:允许用户输入学生姓名和成绩,而不是使用预先定义的数据。这样用户可以自定义数据并进行分析。

  2. 数据分析:除了展示折线图外,可以添加其他图表类型,如柱状图、饼图等,来更全面地展示学生成绩数据。

  3. 排名统计:除了展示折线图外,可以添加排名统计功能,显示每个学生的排名情况,并提供排序功能。

  4. 数据导入导出:允许用户导入数据,并将分析结果导出为Excel、CSV等格式,以便进一步处理或分享。

  5. 主题定制:提供主题定制功能,让用户可以选择界面风格和颜色,以增强用户体验。

  6. 数据过滤:添加数据过滤功能,让用户可以根据特定条件筛选数据进行分析。

  7. 数据比较:允许用户选择不同班级或学科的数据进行比较分析,以便进行更深入的学生成绩分析。
    8.优化界面:让界面更加漂亮美观现代时尚。

通过以上扩展思路,可以使项目更加全面和实用,提升用户体验,并为用户提供更多的数据分析和展示功能。

四、数据输入示例代码

在这里插入图片描述以下是一个示例代码,演示如何使用Python的nicegui库创建界面,允许用户输入学生姓名和成绩,并展示折线图进行分析:

import nicegui as ng
import matplotlib.pyplot as plt# 初始化空列表用于存储用户输入的数据
students = []
grades = []# 创建界面
with ng.box():ng.text('学生成绩排名统计分析')# 添加输入框,让用户输入学生姓名和成绩student_name = ng.input('请输入学生姓名:')student_grade = ng.input('请输入学生成绩:')# 添加按钮,用于提交数据if ng.button('添加学生数据').clicked:students.append(student_name.get())grades.append(int(student_grade.get()))# 添加按钮,用于展示折线图if ng.button('展示折线图').clicked:ng.plot(grades, title='学生成绩折线图', xlabel='学生', ylabel='成绩')plt.plot(students, grades)plt.xlabel('学生')plt.ylabel('成绩')plt.title('学生成绩折线图')plt.show()

在这个示例中,用户可以通过输入框输入学生姓名和成绩,并通过按钮提交数据。当用户点击“展示折线图”按钮时,程序将展示用户输入的学生成绩数据的折线图。这样用户可以自定义数据并进行分析。您可以根据需要对代码进行修改和扩展,以满足您的具体需求。

五、数据分析示例代码

在这里插入图片描述以下是一个示例代码,演示如何使用Python的matplotlib库创建不同类型的图表,如柱状图和饼图,来展示学生成绩数据:

import nicegui as ng
import matplotlib.pyplot as plt# 初始化学生姓名和成绩数据
students = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
grades = [85, 90, 78, 92, 88]# 创建界面
with ng.box():ng.text('学生成绩数据分析')# 添加按钮,用于展示柱状图if ng.button('展示柱状图').clicked:plt.bar(students, grades)plt.xlabel('学生')plt.ylabel('成绩')plt.title('学生成绩柱状图')plt.show()# 添加按钮,用于展示饼图if ng.button('展示饼图').clicked:plt.pie(grades, labels=students, autopct='%1.1f%%')plt.title('学生成绩饼图')plt.show()

在这个示例中,我们使用了matplotlib库来创建柱状图和饼图,展示了学生成绩数据。用户可以通过点击不同的按钮来查看不同类型的图表。这样用户可以更全面地了解学生成绩数据的分布情况。您可以根据需要对代码进行修改和扩展,以满足您的具体需求。

六、排名统计示例代码

在这里插入图片描述以下是一个示例代码,演示如何添加排名统计功能,并提供排序功能,以显示每个学生的排名情况:

import nicegui as ng# 初始化学生姓名和成绩数据
students = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
grades = [85, 90, 78, 92, 88]# 计算每个学生的排名
ranked_students = sorted(zip(students, grades), key=lambda x: x[1], reverse=True)# 创建界面
with ng.box():ng.text('学生成绩排名统计')# 添加按钮,用于展示排名情况if ng.button('显示排名').clicked:ng.text('学生排名情况:')for i, (student, grade) in enumerate(ranked_students):ng.text(f'{i+1}. {student}: {grade}')# 添加按钮,用于按成绩排序if ng.button('按成绩排序').clicked:ranked_students = sorted(zip(students, grades), key=lambda x: x[1], reverse=True)ng.text('学生排名情况:')for i, (student, grade) in enumerate(ranked_students):ng.text(f'{i+1}. {student}: {grade}')

在这个示例中,我们首先计算了每个学生的排名,然后根据用户的需求提供了两个按钮,一个用于显示排名情况,另一个用于按成绩排序并显示排名情况。用户可以通过点击按钮来查看学生的排名情况,并按照成绩排序。这样用户可以更清晰地了解每个学生的排名情况。您可以根据需要对代码进行修改和扩展,以满足您的具体需求。

七、数据导入导出示例代码

在这里插入图片描述以下是一个重写的示例代码,演示如何允许用户导入Excel或CSV格式的文件,并将分析结果导出为Excel或CSV格式的文件:

import nicegui as ng
import pandas as pd# 初始化学生姓名和成绩数据
students = []
grades = []# 创建界面
with ng.box():ng.text('学生成绩数据导入导出')# 添加按钮,用于导入数据if ng.button('导入数据').clicked:uploaded_file = ng.file_upload()if uploaded_file:if uploaded_file.name.endswith('.csv'):df = pd.read_csv(uploaded_file)elif uploaded_file.name.endswith('.xlsx'):df = pd.read_excel(uploaded_file)students = df['Student'].tolist()grades = df['Grade'].tolist()ng.text('数据导入成功!')# 添加按钮,用于展示数据if ng.button('展示数据').clicked:ng.text('学生成绩数据:')for student, grade in zip(students, grades):ng.text(f'{student}: {grade}')# 添加按钮,用于导出数据为Excel文件if ng.button('导出为Excel').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades})ng.file_download(df.to_excel(), filename='grades.xlsx', label='导出为Excel')# 添加按钮,用于导出数据为CSV文件if ng.button('导出为CSV').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades})ng.file_download(df.to_csv(), filename='grades.csv', label='导出为CSV')

在这个示例中,我们根据用户上传的文件类型(CSV或Excel)选择相应的读取方法。用户可以上传Excel或CSV格式的文件,并选择导出为Excel或CSV格式的文件。这样用户可以根据需要灵活处理数据。您可以根据具体需求对代码进行修改和扩展。

八、主题定制示例代码

在这里插入图片描述以下是更新后的示例代码,添加了四种主题选项:

import nicegui as ng
import pandas as pd# 初始化学生姓名和成绩数据
students = []
grades = []# 创建界面
with ng.box():ng.text('学生成绩数据导入导出')# 添加主题定制功能theme_options = ['Light', 'Dark', 'Blue', 'Green']theme = ng.radio('选择主题风格', theme_options, default='Light')if theme == 'Dark':ng.set_theme('dark')elif theme == 'Blue':ng.set_theme('blue')elif theme == 'Green':ng.set_theme('green')else:ng.set_theme('light')# 添加按钮,用于导入数据if ng.button('导入数据').clicked:uploaded_file = ng.file_upload()if uploaded_file:if uploaded_file.name.endswith('.csv'):df = pd.read_csv(uploaded_file)elif uploaded_file.name.endswith('.xlsx'):df = pd.read_excel(uploaded_file)students = df['Student'].tolist()grades = df['Grade'].tolist()ng.text('数据导入成功!')# 添加按钮,用于展示数据if ng.button('展示数据').clicked:ng.text('学生成绩数据:')for student, grade in zip(students, grades):ng.text(f'{student}: {grade}')# 添加按钮,用于导出数据为Excel文件if ng.button('导出为Excel').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades})ng.file_download(df.to_excel(), filename='grades.xlsx', label='导出为Excel')# 添加按钮,用于导出数据为CSV文件if ng.button('导出为CSV').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades})ng.file_download(df.to_csv(), filename='grades.csv', label='导出为CSV')

在这个示例中,我们添加了一个主题选择器,让用户可以选择界面风格(Light或Dark)。根据用户的选择,我们调用ng.set_theme()函数来设置界面的主题风格。用户可以根据喜好选择合适的主题风格,以增强用户体验。我们又扩展示例添加了两种额外的主题选项(Blue和Green),并相应地设置界面的主题风格。用户现在可以选择四种不同的主题风格来定制界面。您可以根据需要进一步扩展和定制主题功能。希望这个示例对您有所帮助!如果您有任何问题,请随时告诉我。

九、数据过滤示例代码

在这里插入图片描述以下是示例代码,添加了数据过滤功能,让用户可以根据特定条件筛选数据进行分析:

import nicegui as ng
import pandas as pd# 初始化学生姓名和成绩数据
students = []
grades = []# 创建界面
with ng.box():ng.text('学生成绩数据导入导出和过滤')# 添加主题定制功能theme_options = ['Light', 'Dark', 'Blue', 'Green']theme = ng.radio('选择主题风格', theme_options, default='Light')if theme == 'Dark':ng.set_theme('dark')elif theme == 'Blue':ng.set_theme('blue')elif theme == 'Green':ng.set_theme('green')else:ng.set_theme('light')# 添加按钮,用于导入数据if ng.button('导入数据').clicked:uploaded_file = ng.file_upload()if uploaded_file:if uploaded_file.name.endswith('.csv'):df = pd.read_csv(uploaded_file)elif uploaded_file.name.endswith('.xlsx'):df = pd.read_excel(uploaded_file)students = df['Student'].tolist()grades = df['Grade'].tolist()ng.text('数据导入成功!')# 添加按钮,用于展示数据if ng.button('展示数据').clicked:ng.text('学生成绩数据:')for student, grade in zip(students, grades):ng.text(f'{student}: {grade}')# 添加按钮,用于导出数据为Excel文件if ng.button('导出为Excel').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades})ng.file_download(df.to_excel(), filename='grades.xlsx', label='导出为Excel')# 添加按钮,用于导出数据为CSV文件if ng.button('导出为CSV').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades})ng.file_download(df.to_csv(), filename='grades.csv', label='导出为CSV')# 添加数据过滤功能ng.text('数据过滤:')filter_value = ng.input('输入过滤条件(成绩大于等于多少):', type=float)filtered_students = [student for student, grade in zip(students, grades) if grade >= filter_value]ng.text('过滤后的学生成绩数据:')for student in filtered_students:ng.text(student)

在这个示例中,我们添加了一个数据过滤功能,让用户可以根据特定条件(成绩大于等于用户输入的值)筛选数据进行分析。用户可以输入过滤条件,并展示符合条件的学生姓名数据。您可以根据需要进一步扩展和定制数据过滤功能。

十、数据比较示例代码

在这里插入图片描述以下是示例代码,添加了数据比较功能,允许用户选择不同班级或学科的数据进行比较分析:

import nicegui as ng
import pandas as pd# 初始化学生姓名、成绩和班级数据
students = []
grades = []
classes = []# 创建界面
with ng.box():ng.text('学生成绩数据导入导出、过滤和比较')# 添加主题定制功能theme_options = ['Light', 'Dark', 'Blue', 'Green']theme = ng.radio('选择主题风格', theme_options, default='Light')if theme == 'Dark':ng.set_theme('dark')elif theme == 'Blue':ng.set_theme('blue')elif theme == 'Green':ng.set_theme('green')else:ng.set_theme('light')# 添加按钮,用于导入数据if ng.button('导入数据').clicked:uploaded_file = ng.file_upload()if uploaded_file:if uploaded_file.name.endswith('.csv'):df = pd.read_csv(uploaded_file)elif uploaded_file.name.endswith('.xlsx'):df = pd.read_excel(uploaded_file)students = df['Student'].tolist()grades = df['Grade'].tolist()classes = df['Class'].tolist()ng.text('数据导入成功!')# 添加按钮,用于展示数据if ng.button('展示数据').clicked:ng.text('学生成绩数据:')for student, grade, class_ in zip(students, grades, classes):ng.text(f'{student}: {grade} - {class_}')# 添加按钮,用于导出数据为Excel文件if ng.button('导出为Excel').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades, 'Class': classes})ng.file_download(df.to_excel(), filename='grades.xlsx', label='导出为Excel')# 添加按钮,用于导出数据为CSV文件if ng.button('导出为CSV').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades, 'Class': classes})ng.file_download(df.to_csv(), filename='grades.csv', label='导出为CSV')# 添加数据过滤功能ng.text('数据过滤:')filter_value = ng.input('输入过滤条件(成绩大于等于多少):', type=float)filtered_students = [student for student, grade in zip(students, grades) if grade >= filter_value]ng.text('过滤后的学生成绩数据:')for student in filtered_students:ng.text(student)# 添加数据比较功能ng.text('数据比较:')compare_option = ng.select('选择比较对象', ['班级', '学科'])if compare_option == '班级':class_options = list(set(classes))selected_class = ng.select('选择班级', class_options)class_students = [student for student, class_ in zip(students, classes) if class_ == selected_class]ng.text(f'班级为{selected_class}的学生成绩数据:')for student in class_students:ng.text(student)elif compare_option == '学科':# 在这里添加学科比较逻辑ng.text('学科比较功能暂未实现')

在这个示例中,我们添加了一个数据比较功能,允许用户选择不同班级或学科的数据进行比较分析。用户可以选择比较对象(班级或学科),然后选择具体的班级或学科进行比较。您可以根据需要进一步扩展和完善学科比较功能。

十一、界面优化示例代码

在这里插入图片描述
在这里插入图片描述以下是优化后的示例代码,让图形化界面更加漂亮美观现代时尚:

import nicegui as ng
import pandas as pd
import plotly.express as px# 初始化学生姓名、成绩和班级数据
students = []
grades = []
classes = []# 创建界面
with ng.box():ng.title('学生成绩分析')# 添加按钮,用于导入数据if ng.button('导入数据').clicked:uploaded_file = ng.file_upload()if uploaded_file:if uploaded_file.name.endswith('.csv'):df = pd.read_csv(uploaded_file)elif uploaded_file.name.endswith('.xlsx'):df = pd.read_excel(uploaded_file)students = df['Student'].tolist()grades = df['Grade'].tolist()classes = df['Class'].tolist()ng.text('数据导入成功!')# 添加按钮,用于展示数据if ng.button('展示数据').clicked:ng.text('学生成绩数据:')for student, grade, class_ in zip(students, grades, classes):ng.text(f'{student}: {grade} - {class_}')# 添加按钮,用于导出数据为Excel文件if ng.button('导出为Excel').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades, 'Class': classes})ng.file_download(df.to_excel(), filename='grades.xlsx', label='导出为Excel')# 添加按钮,用于导出数据为CSV文件if ng.button('导出为CSV').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades, 'Class': classes})ng.file_download(df.to_csv(), filename='grades.csv', label='导出为CSV')# 添加数据过滤功能ng.section('数据过滤')filter_value = ng.input('输入过滤条件(成绩大于等于多少):', type=float)filtered_students = [student for student, grade in zip(students, grades) if grade >= filter_value]ng.text('过滤后的学生成绩数据:')for student in filtered_students:ng.text(student)# 添加数据比较功能ng.section('数据比较')compare_option = ng.select('选择比较对象', ['班级', '学科'])if compare_option == '班级':class_options = list(set(classes))selected_class = ng.select('选择班级', class_options)class_students = [student for student, class_ in zip(students, classes) if class_ == selected_class]ng.text(f'班级为{selected_class}的学生成绩数据:')for student in class_students:ng.text(student)elif compare_option == '学科':# 在这里添加学科比较逻辑ng.text('学科比较功能暂未实现')# 添加数据可视化图表ng.section('数据可视化')if ng.button('显示成绩分布图').clicked:df = pd.DataFrame({'Student': students, 'Grade': grades, 'Class': classes})fig = px.histogram(df, x='Grade', color='Class', title='成绩分布图')ng.plotly(fig)

在优化后的示例代码中,我们通过使用NiceGUI的标题、部分标题和按钮样式,以及Plotly库创建的交互式图表,使图形化界面更加漂亮美观现代时尚。用户可以通过按钮点击显示成绩分布图,以便更直观地了解学生成绩情况。

十二、面向对象更新优化程序示例代码

在这里插入图片描述
在这里插入图片描述以下是面向对象编程的示例代码,优化了图形化界面,使其更加漂亮美观现代时尚:

import nicegui as ng
import pandas as pd
import plotly.express as pxclass StudentGradeAnalyzer:def __init__(self):self.students = []self.grades = []self.classes = []def import_data(self, file):if file.name.endswith('.csv'):df = pd.read_csv(file)elif file.name.endswith('.xlsx'):df = pd.read_excel(file)self.students = df['Student'].tolist()self.grades = df['Grade'].tolist()self.classes = df['Class'].tolist()def show_data(self):ng.text('学生成绩数据:')for student, grade, class_ in zip(self.students, self.grades, self.classes):ng.text(f'{student}: {grade} - {class_}')def export_excel(self):df = pd.DataFrame({'Student': self.students, 'Grade': self.grades, 'Class': self.classes})ng.file_download(df.to_excel(), filename='grades.xlsx', label='导出为Excel')def export_csv(self):df = pd.DataFrame({'Student': self.students, 'Grade': self.grades, 'Class': self.classes})ng.file_download(df.to_csv(), filename='grades.csv', label='导出为CSV')def filter_data(self, filter_value):filtered_students = [student for student, grade in zip(self.students, self.grades) if grade >= filter_value]ng.text('过滤后的学生成绩数据:')for student in filtered_students:ng.text(student)def compare_data(self, compare_option, selected_option):if compare_option == '班级':class_students = [student for student, class_ in zip(self.students, self.classes) if class_ == selected_option]ng.text(f'班级为{selected_option}的学生成绩数据:')for student in class_students:ng.text(student)elif compare_option == '学科':ng.text('学科比较功能暂未实现')def visualize_data(self):df = pd.DataFrame({'Student': self.students, 'Grade': self.grades, 'Class': self.classes})fig = px.histogram(df, x='Grade', color='Class', title='成绩分布图')ng.plotly(fig)# 创建学生成绩分析器实例
analyzer = StudentGradeAnalyzer()# 创建界面
with ng.box():ng.title('学生成绩分析')if ng.button('导入数据').clicked:uploaded_file = ng.file_upload()if uploaded_file:analyzer.import_data(uploaded_file)ng.text('数据导入成功!')if ng.button('展示数据').clicked:analyzer.show_data()if ng.button('导出为Excel').clicked:analyzer.export_excel()if ng.button('导出为CSV').clicked:analyzer.export_csv()ng.section('数据过滤')filter_value = ng.input('输入过滤条件(成绩大于等于多少):', type=float)analyzer.filter_data(filter_value)ng.section('数据比较')compare_option = ng.select('选择比较对象', ['班级', '学科'])if compare_option == '班级':class_options = list(set(analyzer.classes))selected_class = ng.select('选择班级', class_options)analyzer.compare_data(compare_option, selected_class)elif compare_option == '学科':analyzer.compare_data(compare_option, None)ng.section('数据可视化')if ng.button('显示成绩分布图').clicked:analyzer.visualize_data()

在优化后的示例代码中,我们将学生成绩分析功能封装到了一个名为StudentGradeAnalyzer的类中,通过面向对象编程的方式实现了界面优化。通过创建一个学生成绩分析器实例,并调用其方法来处理数据导入、展示、导出、过滤、比较和可视化等功能,使界面更加漂亮美观现代时尚。

十三、归纳总结

在这里插入图片描述
在这里插入图片描述在这个面向对象编程的示例代码中,我们可以总结出以下知识点:

  1. 面向对象编程(OOP):使用类和对象来组织代码,将数据和操作封装在一起,实现代码的模块化和重用。

  2. 类和对象:通过定义类StudentGradeAnalyzer来创建学生成绩分析器实例analyzer,实现数据处理和操作。

  3. 实例方法:在类中定义的方法(函数),用于操作实例的数据和状态。

  4. 数据处理:导入数据、展示数据、导出数据、过滤数据、比较数据和可视化数据等功能。

  5. 界面优化:使用nicegui库创建美观的图形化界面,包括按钮、文本框、下拉框、文件上传、文件下载等交互元素。

  6. 数据分析和可视化:通过pandas库处理数据,使用plotly库创建直方图可视化成绩分布。

  7. 事件处理:通过按钮点击事件等交互操作,触发相应的数据处理和展示操作。

在这里插入图片描述以上是这个示例代码涉及的主要知识点,通过这个示例可以了解如何利用面向对象编程和图形化界面优化来实现学生成绩分析功能。希望这些总结对您有帮助!如果您想进一步了解某个知识点,也可以随时询问我。

相关文章:

第七篇【传奇开心果系列】Python微项目技术点案例示例:数据可视化界面图形化经典案例

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目开发背景和项目目标:二、雏形示例代码三、扩展思路介绍四、数据输入示例代码五、数据分析示例代码六、排名统计示例代码七、数据导入导出示例代码八、主题定制示例代码九、数据过…...

LeetCode 第33天 | 1005. K 次取反后最大化的数组和 135. 分发糖果 134. 加油站

1005. K 次取反后最大化的数组和 按照绝对值大小降序排序,然后将负值变正,如果所有负值都正了,但是还有k余量且为奇数,那就将绝对值最小值(最后一个元素)取反,否则直接结束。 class Solution {…...

PointMixer论文阅读笔记

MLP-mixer是最近很流行的一种网络结构,比起Transformer和CNN的节构笨重,MLP-mixer不仅节构简单,而且在图像识别方面表现优异。但是MLP-mixer在点云识别方面表现欠佳,PointMixer就是在保留了MLP-mixer优点的同时,还可以…...

[word] word分割线在哪里设置 #其他#经验分享

word分割线在哪里设置 在工作中有些技巧,可以快速提高工作效率,解决大部分工作,今天给大家分享word分割线在哪里设置的小技能,希望可以帮助到你。 1、快速输入分割线 输入三个【_】按下回车就是一条长直线,同样分别…...

C++ 音视频原理

本篇文章我们来描述一下音视频原理 音视频录制原理: 下面是对这张思维导图的介绍 摄像头部分: 麦克风采集声音 摄像头采集画面 摄像头采集回来的数据可以用RGB也可以用YUV来表示 图像帧帧率 一秒能处理多少张图像 图像处理 :调亮度 图像帧队列 :意思是将数据取…...

C# 只允许开启一个exe程序

C# 只允许开启一个exe程序 第一种方法 电脑只能启动一次再次点击显示当前exe程序 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.InteropServices; using System.Threading.Tasks; using System.Win…...

【Java程序员面试专栏 分布式中间件】Redis 核心面试指引

关于Redis部分的核心知识进行一网打尽,包括Redis的基本概念,基本架构,工作流程,存储机制等,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 明确redis的特性、应用场景和数据结构 什么是Redis,Redis有哪些应用场景 Redi…...

2024年【高处安装、维护、拆除】模拟考试题库及高处安装、维护、拆除实操考试视频

题库来源:安全生产模拟考试一点通公众号小程序 高处安装、维护、拆除模拟考试题库是安全生产模拟考试一点通生成的,高处安装、维护、拆除证模拟考试题库是根据高处安装、维护、拆除最新版教材汇编出高处安装、维护、拆除仿真模拟考试。2024年【高处安装…...

【QT+QGIS跨平台编译】之三十七:【Shapelib+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、Shapelib介绍二、Shapelib下载三、文件分析四、pro文件五、编译实践一、Shapelib介绍 Shapelib是一个开源的C库,用于读取、写入和操作ESRI Shapefile格式的地理矢量数据。 ESRI Shapefile是一种常见的地理信息系统(GIS)文件格式,用于存储地理矢量数据,包括…...

【机器学习基础】决策树(Decision Tree)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ ⭐特别提醒:针对机器学习,特别开始专栏:机器学习python实战 欢迎订阅&am…...

图神经网络DGL框架,graph classification,多个且不同维度的node feature 训练

node feature 维度不同 我现在有许多不同的图要加入训练,每个图的节点特征维度不同,第一张图n_weight特征有10条数据,第二张图n_weight特征有15条数据,但是训练的时候,需要维度都对其,所以直接做0 padding…...

蓝桥杯(Web大学组)2022国赛真题:用什么来做计算 A

判分标准 实现重置(AC)功能,得 1 分。 实现计算式子和结果显示功能,得 3 分。 实现计算功能,得 6 分。 应该按要求来就行吧,,一开始还在想是否要考虑小数点个数的问题还有式子是否有效…… 笔记…...

Linux POSIX信号量 线程池

Linux POSIX信号量 线程池 一. 什么是POSIX信号量?二. POSIX信号量实现原理三. POSIX信号量接口函数四. 基于环形队列的生产消费模型五. 线程池 一. 什么是POSIX信号量? POSIX信号量是一种用于同步和互斥操作的机制,属于POSIX(Po…...

Sentinel(理论版)

Sentinel 1.什么是Sentinel Sentinel 是一个开源的流量控制组件,它主要用于在分布式系统中实现稳定性与可靠性,如流量控制、熔断降级、系统负载保护等功能。简单来说,Sentinel 就像是一个交通警察,它可以根据系统的实时流量&…...

python3 获取某个文件夹所有的pdf文件表格提取表格并一起合并到excel文件

下面是一个完整的示例,其中包括了merge_tables_to_excel函数的定义,并且假设该函数的功能是从每个PDF文件中提取第一个表格并将其合并到一个Excel文件中: import os from pathlib import Path import pandas as pd import pdfplumber …...

【AIGC】Stable Diffusion的模型入门

下载好相关模型文件后,直接放入Stable Diffusion相关目录即可使用,Stable Diffusion 模型就是我们日常所说的大模型,下载后放入**\webui\models\Stable-diffusion**目录,界面上就会展示相应的模型选项,如下图所示。作者…...

【JavaEE】_HTTP请求首行详情

目录 1. URL 2. 方法 2.1 GET方法 2.2 POST方法 2.3 GET与POST的区别 2.4 低频使用方法 1. URL 在mysql JDBC中已经提到过URL的相关概念: 如需查看有关JDBC更多内容,原文链接如下: 【MySQL】_JDBC编程-CSDN博客 URL用于描述某个资源…...

Linux第48步_编译正点原子的出厂Linux内核源码

编译正点原子的出厂 Linux 内核源码,为后面移植linux做准备。研究对象如下: 1)、linux内核镜像文件“uImage” 路径为“arch/arm/boot”; 2)、设备树文件“stm32mp157d-atk.dtb” 路径为“arch/arm/boot/dts” 3)、默认配置文件“stm32m…...

程序员为什么不喜欢关电脑?

程序员为什么不喜欢关电脑? 本人40 最近待业。,希望 3月前能再就业吧!就不喜欢关电脑 这个问题来说是不好习惯。毕竟你的电脑不是服务器,哈哈。但是程序员都很懒,能自动化的,就让机器干。我在此之前 也工作…...

【初始RabbitMQ】了解和安装RabbitMQ

RabbitMQ的概念 RabbitMQ是一个消息中间件:他可以接受并转发消息。例如你可以把它当做一个快递站点,当你要发送一个包 裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是 …...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

如何在网页里填写 PDF 表格?

有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据&#xff…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则&#xf…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...