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

每日五个pyecharts可视化图表日历图和箱线图:从入门到精通

📊 本文特色:从零开始掌握日历图和箱线图可视化技巧,包含多个完整实例、核心配置项解析和实用场景指南,助您快速构建专业数据可视化图表。pyecharts源码在这里插入图片描述

目录

    • 什么是日历图和箱线图?
      • 📅 日历图(Calendar)
      • 📊 箱线图(Boxplot)
    • 环境准备
      • 📋 基础依赖
      • 🔧 安装步骤
    • 基础日历图实现
      • 代码详解
      • 📌 日历图关键点总结
    • 更多图表实现
      • 图表2:Calendar_heatmap(高级日历图)
      • 代码详解
      • 📌 Calendar_heatmap关键点总结
      • 图表2与图表1的对比
      • 图表3:BoxPlot-基本示例(基础箱线图)
      • 代码详解
      • 📌 箱线图关键点总结
      • 箱线图核心参数解释
      • 图表4:Boxplot & Scatter 组合图表(高级箱线图)
      • 代码详解
      • 📌 组合图表关键点总结
      • 组合图表的优势
      • 图表5:多类别箱线图(自定义提示框)
      • 代码详解
      • 📌 多类别箱线图关键点总结
      • 自定义提示框的优势
    • 常见问题解答
      • ❓ 日历图数据格式有什么要求?
      • ❓ 如何更改日历图的颜色主题?
      • ❓ 日历图支持哪些交互功能?
      • 总结与展望
        • 核心收获
        • 实用建议
        • 进阶方向

日历图和箱线图是两种非常实用的数据可视化图表类型,它们分别适用于不同的数据展示场景。本教程将从基础到进阶,帮助您系统掌握这两种图表的使用方法。

什么是日历图和箱线图?

📅 日历图(Calendar)

日历图以日历的形式展示数据随时间的变化,通过颜色深浅直观呈现数值大小,非常适合展示全年或长时间范围内的趋势变化。

核心优势

  • 时间维度清晰,直观展示数据在全年的分布
  • 色彩渐变效果突出异常值和趋势模式
  • 适合展示步数、销售额、访问量等日常记录数据

典型应用场景

  • 健康数据跟踪(步数、心率等)
  • 业务销售数据分析
  • 网站访问量统计
  • 气象数据可视化

📊 箱线图(Boxplot)

箱线图通过显示一组数据的最小值、第一四分位数、中位数、第三四分位数和最大值,直观地展示数据分布特征和异常值。

核心优势

  • 有效识别数据集中的异常值
  • 比较多组数据的分布特征
  • 不受样本量影响的统计可视化
  • 清晰展示数据的离散程度

典型应用场景

  • 质量控制和过程监控
  • 实验数据结果分析
  • 多组数据对比分析
  • 金融风险评估

环境准备

日历图和箱线图开发需要以下环境支持,请确保系统已正确配置:

📋 基础依赖

  • Python 3.6+(推荐3.8+版本)
  • pyecharts 1.9.0+(本教程基于最新版开发)

🔧 安装步骤

# 创建并激活虚拟环境(推荐)
python -m venv venv
# Windows激活虚拟环境
venv\Scripts\activate
# macOS/Linux激活虚拟环境
# source venv/bin/activate# 安装依赖包
pip install pyecharts==2.0.3# 验证安装
python -c "import pyecharts; print('pyecharts版本:', pyecharts.__version__)"

💡 提示:使用虚拟环境可以避免包版本冲突,是Python项目开发的最佳实践。如果不需要虚拟环境,可以直接执行pip install pyecharts命令。

基础日历图实现

下面是一个基础日历图的实现代码,展示了2017年全年的微信步数情况:

import datetime  # 导入日期时间处理模块
import random    # 导入随机数生成模块from pyecharts import options as opts  # 导入pyecharts配置选项
from pyecharts.charts import Calendar  # 导入日历图图表类型begin = datetime.date(2017, 1, 1)  # 设置开始日期为2017年1月1日
end = datetime.date(2017, 12, 31)  # 设置结束日期为2017年12月31日
# 生成2017年全年每一天的数据,数据格式为[日期字符串, 随机数值]
data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]for i in range((end - begin).days + 1)
]# 创建日历图实例并配置
c = (Calendar()  # 初始化日历图# 添加数据,设置日历范围为2017年.add("", data, calendar_opts=opts.CalendarOpts(range_="2017")).set_global_opts(title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"),  # 设置图表标题visualmap_opts=opts.VisualMapOpts(max_=20000,               # 视觉映射最大值min_=500,                 # 视觉映射最小值orient="horizontal",      # 水平方向显示is_piecewise=True,        # 分段显示pos_top="230px",          # 视觉映射组件顶部位置pos_left="100px",         # 视觉映射组件左侧位置),)#.render("calendar_base.html")  # 渲染到HTML文件(可选)
)
# 在Jupyter Notebook中渲染图表
c.render_notebook()

在这里插入图片描述

代码详解

  1. 导入模块

    • datetime:用于处理日期和时间
    • random:用于生成随机数据
    • pyecharts.options:用于配置图表选项
    • pyecharts.charts.Calendar:用于创建日历图
  2. 数据准备

    • 设置数据的开始和结束日期(2017年全年)
    • 使用列表推导式生成全年每一天的数据,格式为[日期字符串, 数值]
    • 这里使用random.randint(1000, 25000)模拟每日微信步数
  3. 创建图表

    • Calendar():创建日历图实例
    • .add("", data, calendar_opts=opts.CalendarOpts(range_="2017")):添加数据并设置日历范围
    • .set_global_opts():设置全局选项
      • title_opts:设置图表标题
      • visualmap_opts:配置视觉映射,控制日历中颜色深浅对应的数值范围
  4. 渲染展示

    • render_notebook():在Jupyter Notebook中显示图表
    • 如果需要保存为HTML文件,可以取消注释.render("calendar_base.html")

📌 日历图关键点总结

  • 数据格式必须是[日期字符串, 数值]的列表形式
  • CalendarOpts(range_)参数用于指定日历的年份范围
  • 视觉映射组件(VisualMapOpts)控制颜色与数值的对应关系
  • 适合展示全年或特定时间段内的数据分布情况

更多图表实现

图表2:Calendar_heatmap(高级日历图)

下面是一个高级日历图的实现代码,展示了2017年全年步数情况的热图效果:

import random     # 导入随机数生成模块
import datetime   # 导入日期时间处理模块import pyecharts.options as opts  # 导入pyecharts配置选项
from pyecharts.charts import Calendar  # 导入日历图图表类型begin = datetime.date(2017, 1, 1)  # 设置开始日期为2017年1月1日
end = datetime.date(2017, 12, 31)  # 设置结束日期为2017年12月31日
# 生成2017年全年每一天的数据,数据格式为[日期字符串, 随机数值]
data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]for i in range((end - begin).days + 1)
](Calendar()  # 初始化日历图.add(series_name="",  # 系列名称为空yaxis_data=data,  # 设置Y轴数据calendar_opts=opts.CalendarOpts(pos_top="120",  # 日历图距离顶部的距离pos_left="30",  # 日历图距离左侧的距离pos_right="30",  # 日历图距离右侧的距离range_="2017",  # 日历的年份范围yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False),  # 不显示年份标签),).set_global_opts(title_opts=opts.TitleOpts(pos_top="30", pos_left="center", title="2017年步数情况"),  # 设置标题位置和内容visualmap_opts=opts.VisualMapOpts(max_=20000,  # 视觉映射最大值min_=500,    # 视觉映射最小值orient="horizontal",  # 水平方向显示is_piecewise=False     # 连续显示,非分段),)#.render("calendar_heatmap.html")  # 渲染到HTML文件(可选).render_notebook()  # 在Jupyter Notebook中渲染
)

在这里插入图片描述

代码详解

  1. 数据准备

    • 与基础日历图相同,使用datetimerandom模块生成2017年全年的数据
    • 数据格式保持为[日期字符串, 数值]的列表形式
  2. 布局优化

    • 通过pos_toppos_leftpos_right参数调整日历图在容器中的位置
    • 这些参数可以使图表在不同尺寸的显示区域中更好地布局
  3. 视觉效果优化

    • 设置yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False)隐藏年份标签
    • 这可以使日历图更加简洁,专注于数据本身
  4. 颜色映射调整

    • 设置is_piecewise=False使颜色映射变为连续渐变
    • 连续渐变比分段显示更加平滑,适合展示热图效果

📌 Calendar_heatmap关键点总结

  • 可以通过pos_toppos_leftpos_right参数精确控制图表位置
  • is_show=False可以隐藏不需要的标签,使图表更加简洁
  • is_piecewise=False启用连续颜色渐变,适合热图展示
  • 这种配置更适合创建专业的数据分析仪表盘

图表2与图表1的对比

特性基础日历图(图表1)高级日历图(图表2)
标题位置默认位置顶部居中(pos_top=“30”, pos_left=“center”)
日历位置默认位置自定义边距(pos_top=“120”, pos_left=“30”, pos_right=“30”)
年份标签显示隐藏(is_show=False)
颜色映射分段显示(is_piecewise=True)连续渐变(is_piecewise=False)
适用场景基础数据展示专业仪表盘、报告

图表3:BoxPlot-基本示例(基础箱线图)

下面是一个基础箱线图的实现代码,展示了两组数据的分布情况:

from pyecharts import options as opts  # 导入pyecharts配置选项
from pyecharts.charts import Boxplot   # 导入箱线图图表类型# 准备数据,v1和v2分别代表两组不同的数据系列
v1 = [[850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],  # 第一组数据[960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],   # 第二组数据
]
v2 = [[890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],   # 第三组数据[890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],   # 第四组数据
]# 创建箱线图实例
c = Boxplot()
c.add_xaxis(["expr1", "expr2"])  # 设置X轴数据
c.add_yaxis("A", c.prepare_data(v1))  # 添加Y轴数据系列A,注意需要使用prepare_data处理数据
c.add_yaxis("B", c.prepare_data(v2))  # 添加Y轴数据系列B,同样需要使用prepare_data处理数据
c.set_global_opts(title_opts=opts.TitleOpts(title="BoxPlot-基本示例"))  # 设置图表标题
#c.render("boxplot_base.html")  # 渲染到HTML文件(可选)
c.render_notebook()  # 在Jupyter Notebook中渲染

在这里插入图片描述

代码详解

  1. 导入模块

    • pyecharts.options:用于配置图表选项
    • pyecharts.charts.Boxplot:用于创建箱线图
  2. 数据准备

    • 准备了两组数据v1v2,每组数据又包含两个子组
    • 这种嵌套列表的形式是箱线图的数据要求格式
  3. 数据预处理

    • 注意箱线图需要使用prepare_data()方法预处理数据
    • 这是因为箱线图需要计算每个数据组的最小值、第一四分位数、中位数、第三四分位数和最大值
  4. 创建图表

    • Boxplot():创建箱线图实例
    • `.add_xaxis([“expr1”, “expr2”]):设置X轴的分类标签
    • .add_yaxis():添加Y轴数据系列,可以添加多个系列进行对比
    • .set_global_opts():设置全局选项,如标题等

📌 箱线图关键点总结

  • 数据格式必须是嵌套列表,外层列表代表不同的数据系列,内层列表代表每个系列的数据点
  • 必须使用prepare_data()方法预处理数据,这是箱线图的特殊要求
  • 箱线图非常适合比较多组数据的分布特征和离散程度
  • 可以直观地识别数据中的异常值(箱线图中的"离群点")

箱线图核心参数解释

参数说明示例
add_xaxis设置X轴的分类标签`add_xaxis([“类别1”, “类别2”, “类别3”])
add_yaxis添加Y轴数据系列add_yaxis("系列名称", data)
prepare_data预处理箱线图数据,计算统计指标c.prepare_data(raw_data)
set_global_opts设置全局选项set_global_opts(title_opts=...)

图表4:Boxplot & Scatter 组合图表(高级箱线图)

下面是一个高级箱线图的实现代码,展示了箱线图与散点图的组合使用,模拟了著名的迈克尔逊-莫雷实验数据:

import pyecharts.options as opts 
from pyecharts.charts import Grid, Boxplot, Scatter y_data = [ [ 850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980, 930, 650, 760, 810, 1000, 1000, 960, 960, ], [ 960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790, 810, 880, 880, 830, 800, 790, 760, 800, ], [ 880, 880, 880, 860, 720, 720, 620, 860, 970, 950, 880, 910, 850, 870, 840, 840, 850, 840, 840, 840, ], [ 890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920, 890, 860, 880, 720, 840, 850, 850, 780, ], [ 890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870, 810, 740, 810, 940, 950, 800, 810, 870, ], 
] 
scatter_data = [650, 620, 720, 720, 950, 970] box_plot = Boxplot() box_plot = ( box_plot.add_xaxis(xaxis_data=["expr 0", "expr 1", "expr 2", "expr 3", "expr 4"]) .add_yaxis(series_name="", y_axis=box_plot.prepare_data(y_data)) .set_global_opts( title_opts=opts.TitleOpts( pos_left="center", title="Michelson-Morley Experiment" ), tooltip_opts=opts.TooltipOpts(trigger="item", axis_pointer_type="shadow"), xaxis_opts=opts.AxisOpts( type_="category", boundary_gap=True, splitarea_opts=opts.SplitAreaOpts(is_show=False), axislabel_opts=opts.LabelOpts(formatter="expr {value}"), splitline_opts=opts.SplitLineOpts(is_show=False), ), yaxis_opts=opts.AxisOpts( type_="value", name="km/s minus 299,000", splitarea_opts=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1) ), ), ) .set_series_opts(tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")) 
) scatter = ( Scatter() .add_xaxis(xaxis_data=["expr 0", "expr 1", "expr 2", "expr 3", "expr 4"]) .add_yaxis(series_name="", y_axis=scatter_data) .set_global_opts( title_opts=opts.TitleOpts( pos_left="10%", pos_top="90%", title="upper: Q3 + 1.5 * IQR \nlower: Q1 - 1.5 * IQR", title_textstyle_opts=opts.TextStyleOpts( border_color="#999", border_width=1, font_size=14 ), ), yaxis_opts=opts.AxisOpts( axislabel_opts=opts.LabelOpts(is_show=False), axistick_opts=opts.AxisTickOpts(is_show=False), ), ) 
) grid = ( Grid() .add( box_plot, grid_opts=opts.GridOpts(pos_left="10%", pos_right="10%", pos_bottom="15%"), ) .add( scatter, grid_opts=opts.GridOpts(pos_left="10%", pos_right="10%", pos_bottom="15%"), ) #.render("boxplot_light_velocity.html") 
) 
grid.render_notebook()

在这里插入图片描述

代码详解

  1. 数据准备

    • y_data:包含5组实验数据,每组有20个数据点,模拟迈克尔逊-莫雷实验的测量结果
    • scatter_data:一组特殊的散点数据,用于在图表上标记特定点(如异常值或参考点)
  2. 创建箱线图

    • 使用Boxplot()创建箱线图实例
    • 添加X轴数据,对应5个实验表达式
    • 使用prepare_data()方法预处理箱线图数据
    • 配置全局选项,包括标题、提示框、坐标轴样式等
    • 设置Y轴名称为"km/s minus 299,000",符合物理学实验的表示习惯
  3. 创建散点图

    • 使用Scatter()创建散点图实例
    • 添加相同的X轴数据
    • 添加scatter_data作为Y轴数据
    • 配置散点图的标题,解释箱线图的异常值判断标准
    • 隐藏Y轴的标签和刻度,避免与箱线图的Y轴重复
  4. 组合图表

    • 使用Grid()组件将箱线图和散点图组合在同一个画布上
    • 通过grid_opts设置相同的网格选项,确保两个图表对齐
    • 散点图会显示在箱线图的上方,两者共享同一坐标系

📌 组合图表关键点总结

  • Grid()组件是pyecharts中组合多个图表的强大工具
  • 可以通过pos_leftpos_rightpos_bottom等参数精确控制图表位置
  • 箱线图与散点图组合可以同时展示数据分布和特定点标记
  • SplitAreaOpts参数可以设置Y轴的分隔区域,增强可读性
  • 散点图的坐标轴选项可以独立配置,如隐藏标签和刻度

组合图表的优势

这种箱线图与散点图的组合有以下优势:

  1. 多层次信息展示:同时展示数据的整体分布特征和特定数据点
  2. 异常值可视化:可以清晰地标记和解释异常值的判断标准
  3. 增强可读性:通过网格布局和分隔区域,使复杂数据更加直观易懂
  4. 专业数据分析:适合科学实验、统计分析等专业场景

图表5:多类别箱线图(自定义提示框)

下面是一个多类别箱线图的实现代码,展示了如何添加多个数据系列并自定义提示框内容:

from pyecharts import options as opts
from pyecharts.charts import Boxplot
from pyecharts.commons.utils import JsCode# 省略数据字典(Boxplot().add_xaxis(xaxis_data=axis_data).add_yaxis(series_name="category0",y_axis=data[0]["boxData"],tooltip_opts=opts.TooltipOpts(formatter=JsCode("""function(param) { return ['Experiment ' + param.name + ': ','upper: ' + param.data[0],'Q1: ' + param.data[1],'median: ' + param.data[2],'Q3: ' + param.data[3],'lower: ' + param.data[4]].join('<br/>') }""")),).add_yaxis(series_name="category1",y_axis=data[1]["boxData"],tooltip_opts=opts.TooltipOpts(formatter=JsCode("""function(param) { return ['Experiment ' + param.name + ': ','upper: ' + param.data[0],'Q1: ' + param.data[1],'median: ' + param.data[2],'Q3: ' + param.data[3],'lower: ' + param.data[4]].join('<br/>') }""")),).add_yaxis(series_name="category2",y_axis=data[2]["boxData"],tooltip_opts=opts.TooltipOpts(formatter=JsCode("""function(param) { return ['Experiment ' + param.name + ': ','upper: ' + param.data[0],'Q1: ' + param.data[1],'median: ' + param.data[2],'Q3: ' + param.data[3],'lower: ' + param.data[4]].join('<br/>') }""")),).set_global_opts(title_opts=opts.TitleOpts(title="Multiple Categories", pos_left="center"),legend_opts=opts.LegendOpts(pos_top="3%"),tooltip_opts=opts.TooltipOpts(trigger="item", axis_pointer_type="shadow"),xaxis_opts=opts.AxisOpts(name_gap=30,boundary_gap=True,splitarea_opts=opts.SplitAreaOpts(areastyle_opts=opts.AreaStyleOpts(opacity=1)),axislabel_opts=opts.LabelOpts(formatter="expr {value}"),splitline_opts=opts.SplitLineOpts(is_show=False),),yaxis_opts=opts.AxisOpts(type_="value",min_=-400,max_=600,splitarea_opts=opts.SplitAreaOpts(is_show=False),),datazoom_opts=[opts.DataZoomOpts(type_="inside", range_start=0, range_end=20),opts.DataZoomOpts(type_="slider", xaxis_index=0, is_show=True),],)#.render("multiple_categories.html").render_notebook()
)

在这里插入图片描述

代码详解

  1. 数据准备

    • axis_data:X轴的分类标签
    • data:包含三个类别的数据字典,每个类别包含箱线图所需的统计数据
    • 每个箱线图数据点格式为[upper, Q1, median, Q3, lower],对应箱线图的五个关键统计量
  2. 自定义提示框

    • 使用JsCode自定义提示框格式,展示箱线图的五个关键统计量
    • 提示框内容使用HTML格式,通过<br/>实现换行
    • 这种自定义格式使数据解读更加直观,用户可以清晰看到每个实验的统计指标
  3. 多系列添加

    • 通过三次调用add_yaxis方法添加三个数据系列
    • 每个系列使用不同的类别名称和对应的数据
    • 每个系列都应用了相同的自定义提示框格式
  4. 全局配置

    • 设置标题居中显示
    • 图例放置在顶部3%的位置
    • X轴设置了分隔区域,增强可读性
    • 添加数据缩放功能,支持内部缩放和滑块缩放两种模式
    • Y轴设置了固定的取值范围,确保图表展示效果

📌 多类别箱线图关键点总结

  • 使用JsCode可以高度自定义提示框内容,满足专业数据展示需求
  • 多系列箱线图通过多次调用add_yaxis实现,适合多组数据对比
  • datazoom_opts参数为图表添加交互缩放功能,提升用户体验
  • 数据格式可以灵活定义为字典结构,便于管理多个类别的数据
  • boundary_gap参数控制坐标轴两侧留白,影响图表视觉效果

自定义提示框的优势

自定义提示框为数据可视化带来以下优势:

  1. 信息丰富度:可以展示比默认提示框更多的统计信息
  2. 可读性:通过格式化排版,使数据更加易于理解
  3. 专业性:展示专业统计指标,满足高级数据分析需求
  4. 交互体验:鼠标悬停时提供详细数据解读,增强用户交互体验

后续将继续添加更多图表的实现,包括分组箱线图和自定义箱线图等。请继续关注本博客,获取更多pyecharts可视化技巧!

常见问题解答

❓ 日历图数据格式有什么要求?

日历图要求数据格式为[日期字符串, 数值]的列表,日期字符串需要是YYYY-MM-DD格式。例如:

data = [["2023-01-01", 1500], ["2023-01-02", 2000], ...]

❓ 如何更改日历图的颜色主题?

可以通过VisualMapOpts中的range_color参数自定义颜色:

visualmap_opts=opts.VisualMapOpts(range_color=["#e6f7ff", "#bae7ff", "#91d5ff", "#69c0ff", "#40a9ff"],# 其他配置...
)

❓ 日历图支持哪些交互功能?

日历图支持鼠标悬停显示详细信息,点击日期高亮等交互功能。可以通过tooltip_opts自定义提示框内容。

💡 专业建议:数据可视化的核心是传递信息而非炫技。根据数据特点和展示需求选择合适的图表类型,才能让数据故事更清晰易懂。

总结与展望

通过本教程,我们系统学习了如何使用pyecharts创建五种实用的日历图和箱线图可视化图表,从基础到进阶,全面掌握了这两种图表类型的核心功能和高级应用。

核心收获
  1. 日历图应用:掌握了基础日历图和高级日历热图的实现方法,学会了通过位置调整、颜色映射和标签控制来优化视觉效果

  2. 箱线图技术:从基础箱线图到多类别箱线图,再到与散点图的组合应用,全面理解了箱线图在数据分布分析中的强大功能

  3. 高级技巧:学习了Grid组件的使用、自定义提示框、数据预处理等高级技巧,能够创建更加专业和个性化的可视化图表

实用建议
  • 数据准备:日历图需要严格的日期格式数据,箱线图需要特定的嵌套列表结构,务必注意数据格式要求
  • 视觉优化:合理使用位置参数、颜色映射和标签控制,可以显著提升图表的可读性和专业感
  • 组合应用:尝试将不同图表类型组合使用,如箱线图与散点图的组合,能够展示更丰富的数据分析维度
进阶方向
  1. 探索更多pyecharts组件(如Tab、Timeline)与日历图/箱线图的结合应用
  2. 学习pyecharts的主题定制功能,创建符合特定品牌风格的可视化图表
  3. 研究大数据量下的图表性能优化技巧
  4. 结合实际业务场景,开发更复杂的交互式数据仪表盘

希望本教程能够帮助您更好地掌握pyecharts的日历图和箱线图可视化技术,为您的数据可视化工作提供有力支持!

http://www.xdnf.cn/news/19158.html

相关文章:

  • 基于matplotlib库的python可视化:以北京市各区降雨量为例
  • 【开题答辩全过程】以 基于Spring Boot农产品运输服务平台为例,包含答辩的问题和答案
  • [论文阅读] 人工智能 + 软件工程 | 告别“隐藏陷阱”:领域预训练模型SmartBERT如何赋能智能合约安全
  • LoRA modules_to_save解析及卸载适配器(62)
  • 怎样将Word转成高质量的DITA
  • 构建AI智能体:十六、构建本地化AI应用:基于ModelScope与向量数据库的文本向量化
  • RGW层Op的组织
  • 【大前端】React Native(RN)跨端的原理
  • Day16_【机器学习—模型拟合问题】
  • 【MySQL 为什么默认会给 id 建索引? MySQL 主键索引 = 聚簇索引?】
  • 【实战】连锁商超出口网络割接项目案例分享
  • 从CTFshow-pwn入门-pwn43理解栈溢出到底跳转call还是plt
  • 【Word】用 Python 轻松实现 Word 文档对比并生成可视化 HTML 报告
  • 深入 OpenHarmony 内核:设备待机管理模块的休眠调度与资源节能技术
  • 【SpringBoot 版本升级整合Redis异常解决】Unable to connect to 127.0.0.1:6379
  • 5G核心网的架构和功能详解
  • 浏览器访问 ASP.NET Core wwwroot 目录下静态资源的底层实现
  • 新手向:Python编写简易翻译工具
  • 实时标注+硬件加速 | Bandicam 8.2 屏幕录制软件特色功能
  • 局域网共享访问各种报错全记录:从「能 ping 不能进」到「IP/名称差异」一次说清
  • OpenAI重组受阻:微软“锁链”与生态博弈
  • 从 WPF 到 Avalonia 的迁移系列实战篇3:ResourceDictionary资源与样式的差异与迁移技巧
  • 使用 httpsok 工具全面排查网站安全配置
  • @HAProxy 介绍部署使用
  • Copilot、Cursor、Trae、ChatGPT 的“四件套”场景选择表
  • 5G相对于4G网络的优化对比
  • 卷积神经网络实现mnist手写数字集识别案例
  • 三、计算机网络与分布式系统(上)
  • Linux DNS配置文件resolv.conf简介
  • Centos 8 磁盘扩展xfs文件系统 (LVM)