文章目录

  • 一、数据描述
    • 1、数据概览
  • 二、数据预处理
    • 0、导入包和数据
    • 1、列名重命名
    • 2、提取数据中时间,方便后续分析绘图
  • 三、数据可视化
    • 1、美国各个地区销售额的分布(地图)
    • 2、各产品类别销售额对比(柱状图)
    • 3、不同客户类别销售额对比(饼图)
    • 4、每月各产品销售额top10榜单
    • 5、销售额、净利润在时间维度的变化(折线图)
    • 6、销售额

一、数据描述

​ 数据集中9994条数据,横跨1237天,销售额为2,297,200.8603美元,利润为286,397.0217美元,他们的库存中有1862件独特的物品,它们被分为3类,所有这些物品都在美国4个地区的49个州销售,来着793位客户的5009个订单。

数据集: Superstore.csv 来源:kaggle

一共21列数据,每一列属性描述如下:

Row ID => 每一行唯一的ID.
Order ID => 每个客户的唯一订单ID.
Order Date => 产品的订单日期.
Ship Date => 产品发货日期.
Ship Mode=> 客户指定的发货模式.
Customer ID => 标识每个客户的唯一ID.
Customer Name => 客户的名称.
Segment => The segment where the Customer belongs.
Country => 客户居住的国家.
City => 客户居住的城市.
State => 客户所在的州.
Postal Code => 每个客户的邮政编码.
Region => “客户”所属地区.
Product ID => 产品的唯一ID.
Category => 所订购产品的类别.
Sub-Category => 所订购产品的子类别.
Product Name => 产品名称
Sales =>产品的销售.
Quantity => 产品数量.
Discount => 提供折扣.
Profit => 已发生的利润/亏损.

1、数据概览

9994行,21列数据

print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9994 entries, 0 to 9993
Data columns (total 21 columns):#   Column         Non-Null Count  Dtype
---  ------         --------------  -----  0   Row ID         9994 non-null   int64  1   Order ID       9994 non-null   object 2   Order Date     9994 non-null   object 3   Ship Date      9994 non-null   object 4   Ship Mode      9994 non-null   object 5   Customer ID    9994 non-null   object 6   Customer Name  9994 non-null   object 7   Segment        9994 non-null   object 8   Country        9994 non-null   object 9   City           9994 non-null   object 10  State          9994 non-null   object 11  Postal Code    9994 non-null   int64  12  Region         9994 non-null   object 13  Product ID     9994 non-null   object 14  Category       9994 non-null   object 15  Sub-Category   9994 non-null   object 16  Product Name   9994 non-null   object 17  Sales          9994 non-null   float6418  Quantity       9994 non-null   int64  19  Discount       9994 non-null   float6420  Profit         9994 non-null   float64
dtypes: float64(3), int64(3), object(15)
memory usage: 1.6+ MB
None

二、数据预处理

0、导入包和数据

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCodedata = pd.read_csv(r'./data/Superstore.csv')

1、列名重命名

重命名后的列名:

data.columns = ['行ID', '订单ID', '订单日期', '发货日期', '发货方式', '客户ID', '客户名称', '客户类型', '国家', '城市', '州', '邮政编码', '所属区域', '产品ID','产品类别', '产品子类别', '产品名称', '销售额', '产品数量', '提供折扣', '利润/亏损']

2、提取数据中时间,方便后续分析绘图

data['年份'] = data['订单日期'].apply(lambda x: x[-4:])
data['日期'] = pd.to_datetime(data['订单日期'], format='%m/%d/%Y')
data['月份'] = data['日期'].dt.month
data['年-月'] = data['年份'].astype('str') + '-' + data['月份'].astype('str')

三、数据可视化

1、美国各个地区销售额的分布(地图)

包含:Order_Date Sales Quantity Profit year month

usa_sale = data[['州', '销售额']].groupby('州').sum().round(2).reset_index()
print(usa_sale.head())def echarts_map(province, data, title='主标题', subtitle='副标题', label='图例'):"""province:传入省份Listdata:传入各省对应的数据Listtitle:主标题subtitle:副标题label:图例"""map_ = Map(init_opts=opts.InitOpts(bg_color='#080b30',  # 设置背景颜色theme='dark',  # 设置主题width='980px',  # 设置图的宽度height='700px',  # 设置图的高度))map_.add(label, [list(i) for i in zip(province, data)],maptype='美国')map_.set_global_opts(# 标题设置title_opts=opts.TitleOpts(title=title,  # 主标题subtitle=subtitle,  # 副标题pos_left='center',  # 标题展示位置title_textstyle_opts=dict(color='#fff')  # 设置标题字体颜色),# 图例设置legend_opts=opts.LegendOpts(is_show=True,  # 是否显示图例pos_left='right',  # 图例显示位置pos_top='3%',  # 图例距离顶部的距离orient='horizontal'  # 图例水平布局),visualmap_opts=opts.VisualMapOpts(max_=int(max(data)), is_piecewise=False))return map_.render(title + '-' + subtitle + '.html')echarts_map(usa_sale['州'].tolist(), usa_sale['销售额'].tolist(), title='美国各地区销售额分布', subtitle='销售额分布地图', label='销售额')

2、各产品类别销售额对比(柱状图)

pro_category = data[['产品类别', '销售额', '利润/亏损']].groupby('产品类别').sum().round(2).reset_index()
pro_category.head()def echarts_bar(x, y, y2, title='主标题', subtitle='副标题', label='图例', label2='图例2'):"""x: 函数传入x轴标签数据y:函数传入y轴数据title:主标题subtitle:副标题label:图例"""bar = Bar(init_opts=opts.InitOpts(bg_color='#080b30',  # 设置背景颜色theme='dark',  # 设置主题width='900px',  # 设置图的宽度height='600px'  # 设置图的高度))bar.add_xaxis(x)bar.add_yaxis(label, y,label_opts=opts.LabelOpts(is_show=True)  # 是否显示数据, category_gap="70%"  # 柱子宽度设置, yaxis_index=0)bar.add_yaxis(label2, y2,label_opts=opts.LabelOpts(is_show=True)  # 是否显示数据, category_gap="70%"  # 柱子宽度设置, yaxis_index=1)bar.set_series_opts(  # 自定义图表样式label_opts=opts.LabelOpts(is_show=True,position='top',  # position 标签的位置 可选 'top','left','right','bottom','inside','insideLeft','insideRight'font_size=15,color='white',font_weight='bolder',  # font_weight 文字字体的粗细  'normal','bold','bolder','lighter'font_style='oblique',  # font_style 文字字体的风格,可选 'normal','italic','oblique'),  # 是否显示数据标签# markpoint_opts=opts.MarkPointOpts(#     data=[#     opts.MarkPointItem(type_="min", name="最小值"), # 显示最小值标签#     opts.MarkPointItem(type_="max", name="最大值"), # 显示最大值标签#     opts.MarkPointItem(type_="average", name="平均值") # 显示均值标签#     ]# ),itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgba(0, 244, 255, 1)'},{offset: 1,color: 'rgba(0, 77, 167, 1)'}], false)"""),  # 调整柱子颜色渐变'shadowBlur': 15,  # 光影大小"barBorderRadius": [100, 100, 100, 100],  # 调整柱子圆角弧度"shadowColor": "#0EEEF9",  # 调整阴影颜色'shadowOffsetY': 2,'shadowOffsetX': 2,  # 偏移量}})bar.set_global_opts(# 标题设置title_opts=opts.TitleOpts(title=title,  # 主标题subtitle=subtitle,  # 副标题pos_left='center',  # 标题展示位置title_textstyle_opts=dict(color='#fff')  # 设置标题字体颜色),# 图例设置legend_opts=opts.LegendOpts(is_show=True,  # 是否显示图例pos_left='right',  # 图例显示位置pos_top='3%',  # 图例距离顶部的距离orient='horizontal'  # 图例水平布局),tooltip_opts=opts.TooltipOpts(is_show=True,  # 是否使用提示框trigger='axis',  # 触发类型is_show_content=True,trigger_on='mousemove|click',  # 触发条件,点击或者悬停均可出发axis_pointer_type='cross',  # 指示器类型,鼠标移动到图表区可以查看效果),yaxis_opts=opts.AxisOpts(is_show=True,splitline_opts=opts.SplitLineOpts(is_show=False),  # 分割线axistick_opts=opts.AxisTickOpts(is_show=False),  # 刻度不显示axislabel_opts=opts.LabelOpts(  # 坐标轴标签配置font_size=13,  # 字体大小font_weight='bolder'  # 字重),),  # 关闭Y轴显示xaxis_opts=opts.AxisOpts(boundary_gap=True,  # 两边不显示间隔axistick_opts=opts.AxisTickOpts(is_show=True),  # 刻度不显示splitline_opts=opts.SplitLineOpts(is_show=False),  # 分割线不显示axisline_opts=opts.AxisLineOpts(is_show=True),  # 轴不显示axislabel_opts=opts.LabelOpts(  # 坐标轴标签配置font_size=13,  # 字体大小font_weight='bolder'  # 字重),),)bar.extend_axis(yaxis=opts.AxisOpts())return bar.render(title + '-' + subtitle + '.html')echarts_bar(pro_category['产品类别'].tolist(), pro_category['销售额'].tolist(),pro_category['利润/亏损'].tolist(), title='不同产品类别销售额对比', subtitle='销售额对比柱状图',label='销售额', label2='利润')

3、不同客户类别销售额对比(饼图)

customer_sale = data[['客户类型', '销售额', '利润/亏损']].groupby('客户类型').sum().round(2).reset_index()def echarts_pie(x, y, title='主标题', subtitle='副标题', label='图例'):pie = Pie(init_opts=opts.InitOpts(bg_color='#080b30',  # 设置背景颜色theme='dark',  # 设置主题width='900px',  # 设置图的宽度height='600px'))pie.add('', [list(z) for z in zip(x, y)])pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}",font_size='15',font_style='oblique',font_weight='bolder'))pie.set_global_opts(# 标题设置title_opts=opts.TitleOpts(title=title,  # 主标题subtitle=subtitle,  # 副标题pos_left='center',  # 标题展示位置title_textstyle_opts=dict(color='white'),  # 设置标题字体颜色subtitle_textstyle_opts=dict(color='white')),legend_opts=opts.LegendOpts(is_show=True,  # 是否显示图例pos_left='right',  # 图例显示位置pos_top='3%',  # 图例距离顶部的距离orient='vertical',  # 图例水平布局textstyle_opts=opts.TextStyleOpts(color='white',  # 颜色font_size='13',  # 字体大小font_weight='bolder',  # 加粗),))return pie.render(title + '-' + subtitle + '.html')echarts_pie(customer_sale['客户类型'], customer_sale['销售额'], title='不同客户类别销售额对比', subtitle=' ', label='销售额')
echarts_pie(customer_sale['客户类型'], customer_sale['利润/亏损'], title='不同客户类别利润对比', subtitle=' ', label='利润/亏损')

4、每月各产品销售额top10榜单

month_lis = data.sort_values(by='日期')['年-月'].unique().tolist()
month_sale = []
for i in month_lis:month_data = data[data['年-月'] == i][['产品名称', '销售额']].groupby(['产品名称']). \sum().round(2).reset_index().sort_values(by='销售额', ascending=False)[:10]month_data = month_data.sort_values(by='销售额', ascending=True)# final_data = [month_data['产品名称'].tolist(),month_data['销售额'].tolist()]month_sale.append(month_data)# month_sale[0]
# 绘制动态榜单
# 新建一个timeline对象
def echart_line(x, y, title='主标题', subtitle='副标题', label='图例'):tl = Timeline(init_opts=opts.InitOpts(bg_color='#080b30',  # 设置背景颜色theme='dark',  # 设置主题width='1200px',  # 设置图的宽度height='700px'  # 设置图的高度))tl.add_schema(is_auto_play=True,  # 是否自动播放play_interval=1500,  # 播放速度is_loop_play=True,  # 是否循环播放)for i, data1 in zip(x, y):day = ibar = Bar(init_opts=opts.InitOpts(bg_color='#080b30',  # 设置背景颜色theme='dark',  # 设置主题width='1200px',  # 设置图的宽度height='700px'  # 设置图的高度))bar.add_xaxis(data1.iloc[:, 0].tolist())bar.add_yaxis(label,data1.iloc[:, 1].round(2).tolist(),category_gap="40%")bar.reversal_axis()bar.set_series_opts(  # 自定义图表样式label_opts=opts.LabelOpts(is_show=True,position="right",font_style='oblique',font_weight='bolder',font_size='13',),  # 是否显示数据标签itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(1, 0, 0, 0, [{offset: 0,color: 'rgba(0, 244, 255, 1)'},{offset: 1,color: 'rgba(0, 77, 167, 1)'}], false)"""),  # 调整柱子颜色渐变'shadowBlur': 8,  # 光影大小"barBorderRadius": [100, 100, 100, 100],  # 调整柱子圆角弧度"shadowColor": "#0EEEF9",  # 调整阴影颜色'shadowOffsetY': 6,'shadowOffsetX': 6,  # 偏移量}})bar.set_global_opts(# 标题设置title_opts=opts.TitleOpts(title=title,  # 主标题subtitle=subtitle,  # 副标题pos_left='center',  # 标题展示位置title_textstyle_opts=dict(color='white'),  # 设置标题字体颜色subtitle_textstyle_opts=dict(color='#white')),legend_opts=opts.LegendOpts(is_show=True,  # 是否显示图例pos_left='right',  # 图例显示位置pos_top='3%',  # 图例距离顶部的距离orient='vertical',  # 图例水平布局textstyle_opts=opts.TextStyleOpts(color='white',  # 颜色font_size='13',  # 字体大小font_weight='bolder',  # 加粗font_style='oblique',),),tooltip_opts=opts.TooltipOpts(is_show=True,  # 是否使用提示框trigger='axis',  # 触发类型is_show_content=True,trigger_on='mousemove|click',  # 触发条件,点击或者悬停均可出发axis_pointer_type='cross',  # 指示器类型,鼠标移动到图表区可以查看效果# formatter = '{a}<br>{b}:{c}人'  # 文本内容),yaxis_opts=opts.AxisOpts(is_show=True,splitline_opts=opts.SplitLineOpts(is_show=False),  # 分割线axistick_opts=opts.AxisTickOpts(is_show=False),  # 刻度不显示axislabel_opts=opts.LabelOpts(  # 坐标轴标签配置font_size=13,  # 字体大小font_weight='bolder'  # 字重),),  # 关闭Y轴显示xaxis_opts=opts.AxisOpts(boundary_gap=True,  # 两边不显示间隔axistick_opts=opts.AxisTickOpts(is_show=True),  # 刻度不显示splitline_opts=opts.SplitLineOpts(is_show=False),  # 分割线不显示axisline_opts=opts.AxisLineOpts(is_show=True),  # 轴不显示axislabel_opts=opts.LabelOpts(  # 坐标轴标签配置font_size=13,  # 字体大小font_weight='bolder',  # 字重),),)tl.add(bar, day)return tl.render(title + '-' + subtitle + '.html')# 销售额、净利润在时间维度的变化(折线图)
echart_line(month_lis, month_sale, title='每月各产品销售额top10榜单', subtitle=' ', label='销售额')

5、销售额、净利润在时间维度的变化(折线图)

sale_data = data.sort_values(by='日期')[['年份', '日期', '销售额', '利润/亏损']]. \groupby(['年份', '日期']).sum().round(2).reset_index()
year_lis = sale_data['年份'].unique().tolist()
sale_data1 = sale_data[sale_data['年份'] == '2014']
sale_data2 = sale_data[sale_data['年份'] == '2015']
sale_data3 = sale_data[sale_data['年份'] == '2016']
sale_data4 = sale_data[sale_data['年份'] == '2017']
sale_data_lis = [sale_data1, sale_data2, sale_data3, sale_data4]
print(sale_data4.head())def echarts_two_line(x, y, title='主标题', subtitle='副标题', label='图例', label2='图例2'):"""x: 函数传入x轴table数据y:函数传入y轴dataframe集合title:主标题subtitle:副标题label:图例"""tab = Tab()for table, data in zip(x, y):line1 = Line(init_opts=opts.InitOpts(bg_color='#080b30',  # 设置背景颜色theme='dark',  # 设置主题width='1200px',  # 设置图的宽度height='700px'  # 设置图的高度))line1.add_xaxis(data['日期'].tolist())line1.extend_axis(yaxis=opts.AxisOpts())  # 添加一条Y轴line1.add_yaxis(label,data['销售额'].tolist(),yaxis_index=0,is_symbol_show=False,  # 是否显示数据标签点is_smooth=True,  # 设置曲线平滑label_opts=opts.LabelOpts(is_show=True,  # 是否显示数据),# 线条粗细阴影设置linestyle_opts={"normal": {"color": "#E47085",  # 线条颜色"shadowColor": '#E4708560',  # 阴影颜色和不透明度"shadowBlur": 8,  # 阴影虚化大小"shadowOffsetY": 20,  # 阴影y偏移量"shadowOffsetX": 20,  # 阴影x偏移量"width": 7  # 线条粗细},},)line1.set_global_opts(# 标题设置title_opts=opts.TitleOpts(title=title,  # 主标题subtitle=subtitle,  # 副标题pos_left='center',  # 标题展示位置title_textstyle_opts=dict(color='white'),  # 设置标题字体颜色subtitle_textstyle_opts=dict(color='white')),# 图例设置legend_opts=opts.LegendOpts(is_show=True,  # 是否显示图例pos_left='right',  # 图例显示位置pos_top='3%',  # 图例距离顶部的距离orient='horizontal',  # 图例水平布局textstyle_opts=opts.TextStyleOpts(color='white',  # 颜色font_size='13',  # 字体大小font_weight='bolder',  # 加粗),),tooltip_opts=opts.TooltipOpts(is_show=True,  # 是否使用提示框trigger='axis',  # 触发类型is_show_content=True,trigger_on='mousemove|click',  # 触发条件,点击或者悬停均可出发axis_pointer_type='cross',  # 指示器类型,鼠标移动到图表区可以查看效果# formatter = '{a}<br>{b}:{c}人'  # 文本内容),datazoom_opts=opts.DataZoomOpts(range_start=0,  # 开始范围range_end=25,  # 结束范围# orient='vertical',  # 设置为垂直布局type_='slider',  # slider形式is_zoom_lock=False,  # 锁定区域大小# pos_left='1%'  # 设置位置),yaxis_opts=opts.AxisOpts(is_show=True,splitline_opts=opts.SplitLineOpts(is_show=False),  # 分割线axistick_opts=opts.AxisTickOpts(is_show=False),  # 刻度不显示axislabel_opts=opts.LabelOpts(  # 坐标轴标签配置font_size=13,  # 字体大小font_weight='bolder'  # 字重),),  # 关闭Y轴显示xaxis_opts=opts.AxisOpts(boundary_gap=False,  # 两边不显示间隔axistick_opts=opts.AxisTickOpts(is_show=True),  # 刻度不显示splitline_opts=opts.SplitLineOpts(is_show=False),  # 分割线不显示axisline_opts=opts.AxisLineOpts(is_show=True),  # 轴不显示axislabel_opts=opts.LabelOpts(  # 坐标轴标签配置font_size=13,  # 字体大小font_weight='bolder'  # 字重),),)# 新建一个折线图Lineline2 = Line()line2.add_xaxis(data['日期'].tolist())# 将line数据通过yaxis_index指向后添加的Y轴# line2.extend_axis(yaxis=opts.AxisOpts())line2.add_yaxis(label2,data['利润/亏损'].tolist(),yaxis_index=0,is_symbol_show=False,  # 是否显示数据标签点is_smooth=True,  # 设置曲线平滑label_opts=opts.LabelOpts(is_show=True,  # 是否显示数据),# 线条粗细阴影设置linestyle_opts={"normal": {"color": "#44B2BE",  # 线条颜色"shadowColor": '#44B2BE60',  # 阴影颜色和不透明度"shadowBlur": 8,  # 阴影虚化大小"shadowOffsetY": 20,  # 阴影y偏移量"shadowOffsetX": 20,  # 阴影x偏移量"width": 7  # 线条粗细},},)line1.overlap(line2)tab.add(line1, table)return tab.render(title + '-' + subtitle + '.html')echarts_two_line(year_lis, sale_data_lis, title='销售额、利润在时间维度的变化', subtitle=' ',label='销售额', label2='利润/亏损')

6、销售额

sale_sum = int(data['销售额'].sum())
num_count = int(data['产品数量'].sum())
profit_sum = int(data['利润/亏损'].sum())
print(profit_sum)def big_data(title='主标题', subtitle='副标题'):c = Pie(init_opts=opts.InitOpts(chart_id=1,bg_color='#080b30',theme='dark',width='300px',height='300px',))c.set_global_opts(title_opts=opts.TitleOpts(title=title,subtitle=subtitle,title_textstyle_opts=opts.TextStyleOpts(font_size=36,color='#FFFFFF',),pos_left='center',pos_top='middle'))return c.render(str(title) + '-' + subtitle + '.html')big_data(title=sale_sum, subtitle='销售额')

pyecharts案例 超市4年数据可视化分析01相关推荐

  1. 超市零售数据可视化分析(Plotly 指南)

    CSDN 上不能插入 HTML,可以在 GitHub Page 上查看: https://paradiseeee.github.io/2020/07/30/超市零售数据可视化分析/ 项目首次发布于 K ...

  2. 数据挖掘利器 selenium实战案例--论文数据挖掘与可视化分析(上)

    目录 一.数据挖掘 1 为什么选择又慢又占内存的selenium? 2 selenium获取知网信息流程图 1)selenium和ChromeOptions参数 2)构建期刊列表循环 3) 循环点击并 ...

  3. Tableau可视化分析实战系列(三十一)-如何对超市销售数据进行可视化分析

    前言 今天我们利用tableau的数据可视化功能对超市销售与利润进行分析,数据源为tableau自带的示例数据. 1 全国各地区销售额与利润表现 将经度拖动到列,纬度拖动到行,出现世界地图,然后将省/ ...

  4. 基于requests+pyecharts的前程无忧工作岗位可视化分析

    今年大学毕业生预计突破900万大关. 每年毕业的大学生数量是在逐年增加. 根据教育部最新官方数据,预测明年也就是2021年我国高校毕业生人数将达到909万人,首次突破900万人!到2022年,我国高校 ...

  5. 数据挖掘利器 selenium实战案例--论文数据挖掘与可视化分析(下)

    目录 一.发文量分析 1)各期刊发文占比,规划师期刊增刊多.发文量占优: 2)教育机构是期刊论文的主要生产温床: 3)规划师期刊中设计院和研究院机构的发文数量和占比异军突起: 4)发文量排名前20的机 ...

  6. 案例-Kaggle泰坦尼克号生存可视化分析

    #设置ast_node_interactivity = "all"使得可以同时输出多条语句 from IPython.core.interactiveshell import In ...

  7. 数据分析案例-顾客购物数据可视化分析(文末送书5本)

  8. pyecharts geo_pyechartstableau可视化分析案例+分析思路

    大家好,今天的视频是关于广州市的美食数据可视化分析,对美食的整体分布情况做了一个展示,加上一些美食推荐.我们从四个角度展示我们的数据,地理位置,商圈,得分,美食推荐.文章的重点在于(二)部分,该怎么讲 ...

  9. 【手把手教你】股票可视化分析之Pyecharts(二)

    01 引言 Pyechartss 是基于Echarts 的开源可视化库,可以制作非常精美的图表.公众号推文<[手把手教你]股票可视化分析之Pyecharts(一)>,以股票交易数据为例,为 ...

最新文章

  1. ROS关于cv_brige的使用
  2. CentOS6下编译安装zabbix_agent3.0客户端
  3. 针对MySQL死锁问题的思路分析
  4. with 关键字实现递归查询
  5. tomcat 拦截指定url_一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了
  6. Kafka笔记-kafka外网搭建及构建生产者
  7. eclipse+ADT 进行android应用签名详解
  8. 机器学习实战 | 数据探索(变量变换、生成)
  9. android开发 方式有哪些,Android开发从入门到精通
  10. 大数据时代的图表可视化利器——highcharts,D3和百度的echarts
  11. 未能将“C:\Program Files (x86)\DevExpress 2009.2\Components\Sources\DevExpress.DLL\DevExpress.XtraGrid.v
  12. windows上编译,使用libtorrent
  13. WIN 10 系统Alt + Tab 切换窗口卡顿问题结局方案
  14. iperf/LANSpeedTest网络传输速度测试工具
  15. 推荐一款低代码报表开发工具,操作类似Excel
  16. 如何在服务器上快速克隆虚拟机,制作虚拟机模板快速克隆Linux虚拟机
  17. 电脑版敬业签记事本软件如何清除某个分类所有内容
  18. java 读取ppt_Java 读取PPT文本和图片
  19. Bootstrap- Modal对话框如何在关闭时触发事件
  20. zabbix6.4 Database history tables upgraded

热门文章

  1. 售前工程师工作内幕揭秘:面试实战技巧
  2. 自然语言处理和计算机视觉相关论文总结
  3. 将CST时间字符串 转成Date
  4. ucore lab3实验报告
  5. Java泛型真的是鸡肋吗?
  6. 彻底清除Trojan.DL.Delf.cxw的方法
  7. 斐波那契数列/黄金分割数列/“兔子数列”
  8. 微信公众平台开发OAuth2.0网页授权(转)
  9. 五路循迹传感器的优点_5路红外线传感器控制智能小车循迹,27秒走完所有站点...
  10. [从头学数学] 第124节 不等式与不等式组