目录

单一柱状图

分组柱状图

堆积柱状图

百分比柱状图

均值柱状图

不等宽柱状图

有序柱状图

条形图

发散条形图

在条上添加标签的发散条形图

基础棒棒糖图1

基础棒棒糖图2


【声明】:未经版权人书面许可,任何单位或个人不得以任何形式复制、发行、出租、改编、汇编、传播、展示或利用本博客的全部或部分内容,也不得在未经版权人授权的情况下将本博客用于任何商业目的。但版权人允许个人学习、研究、欣赏等非商业性用途的复制和传播。非常推荐大家学习《Python数据可视化科技图表绘制》这本书籍。

单一柱状图

import pandas as pd  # 导入pandas库并简写为pd
import matplotlib.pyplot as plt  # 导入matplotlib.pyplot模块并简写为plt# 自定义数据集
data = pd.DataFrame({'category': ["A", "B", "C", "D", "E"],'value': [10, 15, 7, 12, 8]})  # 创建一个包含类别和值的DataFrame
# 查看数据结构
print("数据结构:")
print(data)# 创建单一柱状图
plt.figure(figsize=(6, 4))  # 创建图形对象,并设置图形大小
plt.bar(data['category'], data['value'], color='steelblue')
# 绘制柱状图,指定x轴为类别,y轴为值,柱状颜色为钢蓝色
plt.xlabel('Category')  # 设置x轴标签
plt.ylabel('Value')  # 设置y轴标签
plt.title('Single Bar Chart')  # 设置图表标题# 添加网格线,采用虚线,设置为灰色,透明度为0.5
plt.grid(linestyle='-', color='gray', alpha=0.5)# 保存图片
plt.savefig('P93单一柱状图.png', dpi=600, transparent=True)
plt.show()
单一柱状图

分组柱状图

import pandas as pd  # 导入pandas库并简写为pd
import matplotlib.pyplot as plt  # 导入matplotlib.pyplot模块并简写为plt# 自定义一个包含多列数据的数据框DataFrame,包含类别和多列值
data = pd.DataFrame({'category': ["A", "B", "C", "D", "E"],'value1': [10, 15, 7, 12, 8], 'value2': [6, 9, 5, 8, 4],'value3': [3, 5, 2, 4, 6], 'value4': [9, 6, 8, 3, 5]})
# 查看数据框
print("Data Structure:")
print(data)  # 输出如图43所示# 创建分组柱状图
data.plot(x='category', kind='bar', figsize=(6, 4))
# 使用DataFrame的plot方法绘制分组柱状图
# 指定x轴为'category'列,图表类型为'bar',图形大小为(6,4)
plt.xlabel('Category')  # 设置x轴标签
plt.xticks(rotation=0)  # 旋转x轴文本,使其水平显示
plt.ylabel('Value')  # 设置y轴标签
plt.title('Grouped Bar Chart')  # 设置图表标题
plt.legend(title='Values')  # 添加图例,并设置标题为'Values'# 保存图片
plt.savefig('P94分组柱状图.png', dpi=600, transparent=True)
plt.show()
分组柱状图

堆积柱状图

import pandas as pd
import matplotlib.pyplot as plt# 自定义一个包含多列数据的数据框DataFrame,包含类别和多列值
data = pd.DataFrame({'category': ["A", "B", "C", "D", "E"],'value1': [10, 15, 7, 12, 8], 'value2': [6, 9, 5, 8, 4],'value3': [3, 5, 2, 4, 6], 'value4': [9, 6, 8, 3, 5]})# 查看数据框
print("Data Structure:")
print(data)# 将'category' 列设置为索引,并创建堆积柱状图
data.set_index('category').plot(kind='bar', stacked=True, figsize=(6, 4))
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Stacked Bar Chart')
plt.xticks(rotation=0)# 添加图例,并设置标题为'Values',并放置在图的右侧
plt.legend(title='Values', loc='center left', bbox_to_anchor=(1, 0.5))# 保存图片时自动调整边界
plt.savefig('P95堆积柱状图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
堆积柱状图

百分比柱状图

import pandas as pd  # 导入pandas库并简写为pd
import matplotlib.pyplot as plt  # 导入matplotlib.pyplot模块并简写为plt# 自定义一个包含多列数据的数据框DataFrame,包含类别和多列值
data = pd.DataFrame({'category': ["A", "B", "C", "D", "E"],'value1': [10, 15, 7, 12, 8], 'value2': [6, 9, 5, 8, 4],'value3': [3, 5, 2, 4, 6], 'value4': [9, 6, 8, 3, 5]})
# 查看数据框
print("Data Structure:")
print(data)  # 输出如图43所示# 创建百分比柱状状图
# 复制数据集到新的DataFrame以便进行百分比计算
data_percentage = data.copy()# 计算每个数值列的百分比,除以每行的总和并乘以100
data_percentage.iloc[:, 1:] = data_percentage.iloc[:, 1:].div(data_percentage.iloc[:, 1:].sum(axis=1), axis=0) * 100data_percentage.set_index('category').plot(kind='bar',stacked=True, figsize=(6, 4))
# 创建百分比堆叠柱状图,设置索引为'category'列,
# 图表类型为'bar',堆积模式为True,图形大小为(6,4)plt.xlabel('Category')  # 设置x轴标签
plt.ylabel('Percentage')  # 设置y轴标签
plt.title('Percentage Stacked Bar Chart')  # 设置图表标题
plt.xticks(rotation=0)  # 旋转x轴文本,使其水平显示# 添加图例,并设置标题为'Values',并放置在图的右侧
plt.legend(title='Values', loc='center left', bbox_to_anchor=(1, 0.5))# 保存图片时自动调整边界
plt.savefig('P97百分比柱状图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
百分比柱状图

均值柱状图

import pandas as pd  # 导入pandas库并简写为pd
import matplotlib.pyplot as plt  # 导入matplotlib.pyplot模块并简写为plt
import seaborn as sns  # 导入seaborn库并简写为sns# 创建创建一个包含类别、值和标准差的DataFrame数据集
data = pd.DataFrame({'category': ["A", "B", "C", "D", "E"],'value': [10, 15, 7, 12, 8], 'std': [1, 2, 1.5, 1.2, 2.5]})# 计算每个类别的均值和标准差
mean_values = data['value']
std_values = data['std']colors = sns.color_palette("Set1", n_colors=len(data))  # 创建颜色调色板
# 创建均值柱状图
plt.figure(figsize=(6, 4))  # 创建图形对象,并设置图形大小
bars = plt.bar(data['category'], mean_values, color=colors)
# 绘制柱状图,指定x轴为类别,y轴为均值,柱状颜色为颜色调色板中的颜色# 添加误差线
for i, (bar, std) in enumerate(zip(bars, std_values)):plt.errorbar(bar.get_x() + bar.get_width() / 2, bar.get_height(),# 在柱状图的中心位置添加误差线yerr=std, fmt='none', color='black', ecolor='gray',# 设置误差线的样式和颜色capsize=5, capthick=2)  # 设置误差线的帽子大小和线宽
# 添加标题和标签
plt.xlabel('Category')  # 设置x轴标签
plt.ylabel('Mean Value')  # 设置y轴标签
plt.title('Mean Bar Chart with Error Bars')  # 设置图表标题# 设置网格线的样式、颜色和透明度
plt.grid(axis='both', linestyle='-', color='gray', alpha=0.5)# 保存图片时自动调整边界
plt.savefig('P98均值柱状图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
均值柱状图

不等宽柱状图

import pandas as pd
import matplotlib.pyplot as plt# 创建数据集
data = pd.DataFrame({'category': ["A", "B", "C", "D", "E"],'value': [10, 15, 7, 12, 8],'width': [0.8, 0.4, 1.0, 0.5, 0.9]})
print("数据结构:"), print(data)  # 查看数据框,如图48所示# 自定义颜色列表,每个柱子使用不同的配色
colors = ['red', 'green', 'blue', 'orange', 'purple']
# 创建不等宽柱状图
plt.figure(figsize=(6, 4))
for i in range(len(data)):plt.bar(data['category'][i], data['value'][i],width=data['width'][i], color=colors[i])# 添加标题和标签
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Unequal Width Bar Chart')# 设置网格线
plt.grid(axis='both', linestyle='-', color='gray', alpha=0.5)# 保存图片时自动调整边界
plt.savefig('P99不等宽柱状图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
不等宽柱状图

有序柱状图

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as patchesdf_raw = pd.read_csv(r"E:\PythonProjects\experiments_figures\绘图案例数据\mpg_ggplot2.csv")  # 读取原始数据
# 按制造商分组,并计算每个制造商的平均城市里程
df = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x: x.mean())# 按城市里程排序数据
df.sort_values('cty', inplace=True)  # 按城市里程排序数据
df.reset_index(inplace=True)  # 重置索引# 绘图
# 创建图形和坐标轴对象
fig, ax = plt.subplots(figsize=(10, 6), facecolor='white', dpi=80)# 使用vlines绘制垂直线条,代表城市里程
ax.vlines(x=df.index, ymin=0, ymax=df.cty, color='firebrick',alpha=0.7, linewidth=20)# 添加文本注释
# 在每个条形的顶部添加数值标签
for i, cty in enumerate(df.cty):ax.text(i, cty + 0.5, round(cty, 1), horizontalalignment='center')# 设置标题、标签、刻度和y轴范围
ax.set_title('Bar Chart for Highway Mileage',fontdict={'size': 18})  # 设置标题
ax.set(ylabel='Miles Per Gallon', ylim=(0, 30))  # 设置y轴标签和范围
plt.xticks(df.index, df.manufacturer.str.upper(), rotation=60,horizontalalignment='right', fontsize=8)  # 设置x轴标签# 添加补丁以为X轴标签着色
# 创建两个补丁对象,用于着色X轴标签的背景
p1 = patches.Rectangle((.57, -0.005), width=.33, height=.13, alpha=.1,facecolor='green', transform=fig.transFigure)  # 创建绿色补丁
p2 = patches.Rectangle((.124, -0.005), width=.446, height=.13, alpha=.1,facecolor='red', transform=fig.transFigure)  # 创建红色补丁
# 将补丁对象添加到图形上
fig.add_artist(p1)  # 添加绿色补丁
fig.add_artist(p2)  # 添加红色补丁# 保存图片时自动调整边界
plt.savefig('P100有序柱状图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
有序柱状图

条形图

import pandas as pd
import matplotlib.pyplot as plt
import randomdf_raw = pd.read_csv(r"E:\PythonProjects\experiments_figures\绘图案例数据\mpg_ggplot2.csv")  # 导入数据
# 准备数据
df = df_raw.groupby('manufacturer').size().reset_index(name='counts')
# 按制造商分组并计算每个制造商的数量
n = df['manufacturer'].unique().__len__() + 1  # 获取唯一制造商的数量
all_colors = list(plt.cm.colors.cnames.keys())  # 获取所有可用的颜色
random.seed(100)  # 设置随机种子,确保每次运行生成的颜色相同
c = random.choices(all_colors, k=n)  # 从颜色列表中随机选择 n 个颜色# 绘制条形图
plt.figure(figsize=(10, 6), dpi=80)  # 设置图形大小
plt.barh(df['manufacturer'], df['counts'], color=c,height=.5)  # 绘制水平条形图,X轴为counts,Y轴为manufacturer
for i, val in enumerate(df['counts'].values):  # 遍历每个条形并在右侧添加数值标签plt.text(val, i, float(val), horizontalalignment='left',verticalalignment='center', fontdict={'fontweight': 500, 'size': 12})# 添加修饰
plt.gca().invert_yaxis()  # 反转Y轴,确保顺序正确显示
plt.title("Number of Vehicles by Manufacturers",fontsize=18)  # 设置标题和字体大小
plt.xlabel('# Vehicles')  # 设置x轴标签
plt.xlim(0, 45)  # 设置x轴的范围# 保存图片时自动调整边界
plt.savefig('P103条形图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
条形图

发散条形图

import pandas as pd
import matplotlib.pyplot as pltdf = pd.read_csv(r"E:\PythonProjects\experiments_figures\绘图案例数据\mtcars1.csv")  # 读取数据# 提取'mpg'列作为x变量,并计算其标准化值
x = df.loc[:, ['mpg']]
df['mpg_z'] = (x - x.mean()) / x.std()
# 根据'mpg_z'列的值确定颜色
df['colors'] = ['red' if x < 0 else 'green' for x in df['mpg_z']]df.sort_values('mpg_z', inplace=True)  # 根据'mpg_z'列的值对数据进行排序
df.reset_index(inplace=True)  # 重置索引# 绘制图形 ①
plt.figure(figsize=(10, 8), dpi=600)
plt.hlines(y=df.index, xmin=0, xmax=df.mpg_z, color=df.colors,alpha=0.4, linewidth=5)# 图形修饰
plt.gca().set(ylabel='$Model$', xlabel='$Mileage$')  # 设置y轴和x轴标签
plt.yticks(df.index, df.cars, fontsize=12)  # 设置y轴刻度标签和字体大小
plt.title('Diverging Bars of Car Mileage',fontdict={'size': 20})  # 设置标题和字体大小
plt.grid(linestyle='--', alpha=0.5)  # 添加网格线# 保存图片时自动调整边界
plt.savefig('P104发散条形图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
发散条形图

在条上添加标签的发散条形图

import pandas as pd
import matplotlib.pyplot as pltdf = pd.read_csv(r"E:\PythonProjects\experiments_figures\绘图案例数据\mtcars1.csv")  # 读取数据# 提取'mpg'列作为x变量,并计算其标准化值
x = df.loc[:, ['mpg']]
df['mpg_z'] = (x - x.mean()) / x.std()
# 根据'mpg_z'列的值确定颜色
df['colors'] = ['red' if x < 0 else 'green' for x in df['mpg_z']]df.sort_values('mpg_z', inplace=True)  # 根据'mpg_z'列的值对数据进行排序
df.reset_index(inplace=True)  # 重置索引plt.figure(figsize=(10, 8), dpi=600)
plt.hlines(y=df.index, xmin=0, xmax=df.mpg_z)# 在条形上添加标签
for x, y, tex in zip(df.mpg_z, df.index, df.mpg_z):t = plt.text(x, y, round(tex, 2),horizontalalignment='right' if x < 0 else 'left',verticalalignment='center',fontdict={'color': 'red' if x < 0 else 'green', 'size': 12})# 图形修饰
plt.gca().set(ylabel='$Model$', xlabel='$Mileage$')  # 设置y轴和x轴标签
plt.yticks(df.index, df.cars, fontsize=12)  # 设置y轴刻度标签和字体大小
plt.title('Diverging Bars of Car Mileage',fontdict={'size': 20})  # 设置标题和字体大小
plt.grid(linestyle='--', alpha=0.5)  # 添加网格线
plt.xlim(-2.5, 2.5)  # 设置x轴范围# 保存图片时自动调整边界
plt.savefig('P105在条上添加标签的发散条形图.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
在条上添加标签的发散条形图

基础棒棒糖图1

import matplotlib.pyplot as plt
import numpy as np# 创建数据
np.random.seed(19781101)  # 固定随机种子,以便结果可复现
values = np.random.uniform(size=40)  # 生成40个0到1之间的随机数
positions = np.arange(len(values))  # 生成与values长度相同的位置数组plt.figure(figsize=(10, 6))  # 创建图形窗口大小# 绘制没有标记的图形
plt.subplot(2, 2, 1)  # 创建一个2x2的子图矩阵,并选择第1个子图
plt.stem(values, markerfmt=' ')  # 绘制棒棒糖图,没有标记
plt.title("No Markers")  # 设置子图标题# 改变颜色、形状、大小和边缘
plt.subplot(2, 2, 2)  # 选择第2个子图
(markers, stemlines, baseline) = plt.stem(values)  # 获取棒棒糖图的组件
plt.setp(markers, marker='D', markersize=6,markeredgecolor="orange", markeredgewidth=2)  # 设置标记属性
plt.title("Custom Markers")  # 设置子图标题# 绘制没有标记的图形(水平展示)
plt.subplot(2, 2, 3)  # 选择第3个子图
plt.hlines(y=positions, xmin=0, xmax=values, color='skyblue')  # 绘制水平线
plt.plot(values, positions, ' ')  # 绘制数据点
plt.title("Horizontal No Markers")  # 设置子图标题# 改变颜色、形状、大小和边缘进行水平展示
plt.subplot(2, 2, 4)  # 选择第4个子图
plt.hlines(y=positions, xmin=0, xmax=values, color='skyblue')  # 绘制水平线
plt.plot(values, positions, 'D', markersize=6,markeredgecolor="orange", markerfacecolor="orange",markeredgewidth=2)  # 绘制数据点,并设置属性
plt.title("Horizontal Custom Markers")  # 设置子图标题plt.tight_layout()  # 自动调整子图布局# 保存图片时自动调整边界
plt.savefig('P107基础棒棒糖图1.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
基础棒棒糖图1

基础棒棒糖图2

import pandas as pd
import matplotlib.pyplot as pltdf_raw = pd.read_csv(r"E:\PythonProjects\experiments_figures\绘图案例数据\mpg_ggplot2.csv")  # 读取原始数据
# 按制造商分组,并计算每个制造商的平均城市里程
df = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x: x.mean())# 按城市里程排序数据
df.sort_values('cty', inplace=True)
df.reset_index(inplace=True)# 绘图
fig, ax = plt.subplots(figsize=(12, 8), dpi=80)# 使用vlines绘制垂直线条,代表城市里程的起始点
ax.vlines(x=df.index, ymin=0, ymax=df.cty, color='firebrick',alpha=0.7, linewidth=2)# 使用scatter绘制lollipop的圆点
ax.scatter(x=df.index, y=df.cty, s=75, color='firebrick', alpha=0.7)# 设置标题、标签、刻度和y轴范围
ax.set_title('Lollipop Chart for Highway Mileage',fontdict={'size': 20})  # 设置标题
ax.set_ylabel('Miles Per Gallon')  # 设置y轴标签
ax.set_xticks(df.index)  # 设置x轴刻度位置
ax.set_xticklabels(df.manufacturer.str.upper(), rotation=60,fontdict={'horizontalalignment': 'right', 'size': 12})  # 设置x轴刻度标签
ax.set_ylim(0, 30)  # 设置y轴范围# 添加注释
# 使用for循环遍历DataFrame的每一行,并在每个lollipop的顶部添加城市里程的数值
for row in df.itertuples():ax.text(row.Index, row.cty + 0.5, s=round(row.cty, 2),horizontalalignment='center', verticalalignment='bottom',fontsize=14)# 保存图片时自动调整边界
plt.savefig('P107基础棒棒糖图2.png', dpi=600, bbox_inches='tight', transparent=True)
plt.show()
基础棒棒糖图2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/84036.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/84036.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/84036.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 数组与流程控制:从基础操作到实战应用

在 JavaScript 编程的世界里&#xff0c;数组是一种极为重要的数据结构&#xff0c;它就像是一个有序的 “收纳盒”&#xff0c;能够将多个值整齐地存储起来。而流程控制语句则像是 “指挥官”&#xff0c;能够按照特定的逻辑对数组进行遍历和操作。接下来&#xff0c;就让我们…

十(1). 强制类型转换

继第十部分C强制类型转换的四种方式&#xff0c;再进行强化巩固一下知识点 static_cast 最常用的&#xff0c;在指针之间做转换 const_cast 去除常量属性 dynamic_cast 用在基类和派生类之间的转换 reinterpret_cast 在任意类型之间进行转 10.1 static_cast 常见的使用场景&am…

Git版本控制工具详解

如何区分开发环境和生产环境呢 答案就是写不同的配置文件&#xff0c;开发的设置成开发需要的&#xff0c;生产的设置成生产需要的&#xff0c;共同放到config这个配置文件夹下面&#xff0c;开发和生成的时候分别加载不同的配置文件 方式二就是使用相同的一个入口配置文件&a…

反向传播的核心是什么:计算损失函数对可训练参数的梯度=== 损失函数能通过计算图连接到可训练参数

反向传播的核心是什么:计算损失函数对可训练参数的梯度 损失函数能通过计算图连接到可训练参数 在深度学习中,反向传播的核心是计算损失函数对可训练参数的梯度,从而更新这些参数。对于LLM(大型语言模型)而言,是否需要“LLM输出的参数”才能进行反向传播 一、反向传播…

KINGCMS被入侵

现象会强制跳转到 一个异常网站,请掉截图代码. 代码中包含经过混淆处理的JavaScript&#xff0c;它使用了一种技术来隐藏其真实功能。代码中使用了eval函数来执行动态生成的代码&#xff0c;这是一种常见的技术&#xff0c;恶意脚本经常使用它来隐藏其真实目的。 这段脚本会检…

深入探索串的高级操作:从算法到 LeetCode 实战

串是编程中最常用的数据结构之一&#xff0c;从简单的文本处理到复杂的文本匹配算法&#xff0c;串的应用无处不在。在掌握了串的基本概念、存储结构以及KMP算法之后&#xff0c;现在让我们深入探索串的更多高级操作&#xff0c;例如求子串、串的替换等&#xff0c;并通过LeetC…

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …

OneNet + openssl + MTLL

1.OneNet 使用的教程 1.在网络上搜索onenet&#xff0c;注册并且登录账号。 2.产品服务-----物联网服务平台立即体验 3.在底下找到立即体验进去 4.产品开发------创建产品 5.关键是选择MQTT&#xff0c;其他的内容自己填写 6.这里产品以及开发完成&#xff0c;接下来就是添加设…

【Fiddler工具判断前后端Bug】

Fiddler工具判断前后端Bug的方法 使用Fiddler抓包工具可以高效定位问题是出在前端还是后端&#xff0c;主要通过分析请求和响应的内容、状态码、数据格式等关键信息。 分析请求是否成功发送 检查请求是否从客户端正确发出&#xff0c;观察Fiddler抓取的请求列表。若请求未出…

【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》

文章目录 一、论文基本信息1. 文章标题2. 所属刊物/会议3. 发表年份4. 作者列表5. 发表单位 二、摘要三、解决问题四、创新点五、自己的见解和感想六、研究背景七、研究方法&#xff08;模型、实验数据、评估指标&#xff09;八、总结&#xff08;做了什么、得到了什么、有什么…

【强连通分量 缩点 最长路 拓扑排序】P2656 采蘑菇|普及+

本文涉及知识点 C图论 强连通分量 缩点 最长路 拓扑排序 P2656 采蘑菇 题目描述 小胖和 ZYR 要去 ESQMS 森林采蘑菇。 ESQMS 森林间有 N N N 个小树丛&#xff0c; M M M 条小径&#xff0c;每条小径都是单向的&#xff0c;连接两个小树丛&#xff0c;上面都有一定数量的…

Dubbo Logback 远程调用携带traceid

背景 A项目有调用B项目的服务&#xff0c;A项目使用 logback 且有 MDC 方式做 traceid&#xff0c;调用B项目的时候&#xff0c;traceid 没传递过期&#xff0c;导致有时候不好排查问题和链路追踪 准备工作 因为使用的是 alibaba 的 dubbo 所以需要加入单独的包 <depend…

nodejs:用 nodemailer 发送一封带有附件的邮件

我们将使用 nodemailer 库来发送带有附件的邮件。 首先&#xff0c;确保已经安装了nodemailer。如果没有安装&#xff0c;可以通过 npm install nodemailer 来安装。 cnpm install nodemailer --save dependencies: – nodemailer ^7.0.3 步骤&#xff1a; 引入nodemailer模…

Scade 语言概念 - 方程(equation)

在 Scade 6 程序中自定义算子(Operator)的定义、或数据流定义(data_def)的内容中&#xff0c;包含一种基本的语言结构&#xff1a;方程(equation)(注1)。在本篇中&#xff0c;将叙述 Scade 语言方程的文法形式&#xff0c;以及作用。 注1: 对 Scade 中的 equation, 或 equation…

STM32开发,创建线程栈空间大小判断

1. 使用RTOS提供的API函数&#xff08;以FreeRTOS为例&#xff09; 函数原型&#xff1a;UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask)功能&#xff1a;获取指定任务堆栈中剩余的最小空间&#xff08;以字为单位&#xff0c;非字节&#xff09;。使用步骤&am…

thinkphp8.1 调用巨量广告API接口,刷新token

1、在mysql中建立表sys_token; CREATE TABLE sys_token (id int UNSIGNED NOT NULL,access_token varchar(50) COLLATE utf8mb4_general_ci NOT NULL,expires_in datetime NOT NULL,refresh_token varchar(50) COLLATE utf8mb4_general_ci NOT NULL,refresh_token_expires_in …

【leetcode】递归,回溯思想 + 巧妙解法-解决“N皇后”,以及“解数独”题目

&#x1f4da;️前言 &#x1f31f; 本期内容亮点&#xff1a;我们将深入解析力扣&#xff08;LeetCode&#xff09;上的几道经典算法题&#xff0c;涵盖不同难度和题型&#xff0c;帮助大家掌握解题思路和代码实现技巧。无论是准备面试还是提升算法能力&#xff0c;这些题解都…

【iOS安全】iPhone X iOS 16.7.11 (20H360) WinRa1n 越狱教程

前言 越狱iPhone之后&#xff0c;一定记得安装一下用于屏蔽更新的描述文件&#xff08;可使用爱思助手&#xff09; 因为即便关闭了自动更新&#xff0c;iPhone仍会在某些时候自动更新系统&#xff0c;导致越狱失效&#xff1b;更为严重的是&#xff0c;更新后的iOS版本可能是…

​​高频通信与航天电子的材料革命:猎板PCB高端压合基材技术解析​​

—聚酰亚胺/陶瓷基板在5G与航天场景的产业化应用​​ ​​一、极端环境材料体系&#xff1a;突破温域与频率极限​​ ​​聚酰亚胺基板&#xff08;PI&#xff09;的航天级稳定性​​ 猎板在卫星通信PCB中采用真空层压工艺处理聚酰亚胺基材&#xff08;Dk≈10.2&#xff09;&a…

pikachu靶场通关笔记13 XSS关卡09-XSS之href输出

目录 一、href 1、常见取值类型 2、使用示例 3、安全风险 二、源码分析 1、进入靶场 2、代码审计 3、渗透思路 三、渗透实战 1、注入payload1 2、注入payload2 3、注入payload3 本系列为通过《pikachu靶场通关笔记》的XSS关卡(共10关&#xff09;渗透集合&#xff…