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

Matplotlib 绘制基本的图表

# 导入包
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来显示中文
plt.rcParams['axes.unicode_minus'] = False # 显示负坐标轴# 读取源数据,后续大部分数据基于词文件的数据,需要对金额进行一些简单的处理
file_path = r"D:\data\datasource\data_wuliu.csv"
df1 = pd.read_csv(file_path,parse_dates=['销售时间','交货时间'],encoding='gbk')# 因销售金额单位的问题,对销售金额列进行处理
# replace ',' with '.'  并将格式转换为float;如果是万元 *10000
def data_deal(number):if number.find('万元') !=-1:num1 = float(number[:number.find('万元')].replace(',',''))*10000else: #找到带元的,删除元,replace ',' with '.' num1 = float(number[:number.find('元')].replace(',',''))return num1
df1['销售金额'] = df1['销售金额'].map(data_deal)# 1: 柱形图
# 准备数据,月销售额
df_month = df1.groupby(df1.销售时间.dt.month)['销售金额'].sum().reset_index()# 画图
plt.bar(df_month.销售时间,df_month['销售金额'],label='销售金额')
plt.legend(loc = 'upper right') # 显示图例
plt.xlabel('月份') # 设置行坐标轴
plt.ylabel('销量') # 设置列坐标轴
plt.xticks(df_month.销售时间 , rotation=45) # 设置x刻度倾斜45度
plt.ylim(0,100000000) #设置坐标轴长度plt.title('月度销售额',fontsize=16,fontweight='bold') # 设置图标的标题

# 2: 条形图
plt.bar(x=0, bottom=df_month.销售时间, height=0.5, width=df_month.销售金额, orientation='horizontal',color='GREEN')
plt.xlabel('销量')
plt.ylabel('月份')

# 分组柱形图: 不同月份中 , 拒货,返修,质量合格的产品数量
# 准备数据 
df_pivot = pd.pivot_table(df1,values='订单号',index= df1.销售时间.dt.month,aggfunc = 'count',columns = '货品用户反馈').reset_index()# 画图
bar1 = plt.bar(x=df_pivot.销售时间-0.2, height=df_pivot.拒货, color='blue', width=0.2,label='拒货',alpha = 0.5) # alpha 设置透明度
bar2 = plt.bar(x=df_pivot.销售时间,height = df_pivot.质量合格, color='green',width=0.2,label='质量合格',alpha = 0.5)
bar3 = plt.bar(x=df_pivot.销售时间+0.2,height = df_pivot.返修, color='red',width=0.2,label='返修',alpha = 0.5)
plt.legend()# 添加数据标注, 
plt.bar_label(bar1)
plt.bar_label(bar2)
plt.bar_label(bar3)

# 堆积柱形图: 不同月份拒货,返修,质量合格的产品数量
bar1 = plt.bar(np.arange(6),df_pivot.拒货,color='red',label='拒货',width=0.5,alpha=0.5)
bar2 =plt.bar(np.arange(6),df_pivot.质量合格,color='blue',label='质量合格',bottom=df_pivot.拒货,width=0.5,alpha=0.5)
bar3 =plt.bar(np.arange(6),df_pivot.返修,color='green',label='返修',bottom=df_pivot.质量合格+df_pivot.拒货,width=0.5,alpha=0.5)plt.bar_label(bar1,color='white')
plt.bar_label(bar2,color='white')
plt.bar_label(bar3)
# 设置x轴标签
plt.xticks(np.arange(6),df_pivot.销售时间)
plt.ylim(0,400) # 修改刻度
plt.legend(loc='upper right',ncol=3) # 显示图例

# 5: 堆积条形图
bar1 = plt.bar(x=0,bottom=df_pivot.销售时间,height=0.5, width=df_pivot.拒货, orientation='horizontal',color='GREEN',alpha=0.6)
bar2 = plt.bar(x=df_pivot.拒货,bottom=df_pivot.销售时间,height=0.5, width=df_pivot.质量合格, orientation='horizontal',color='red',alpha=0.6)
bar3 = plt.bar(x=df_pivot.拒货+df_pivot.质量合格,bottom=df_pivot.销售时间,height=0.5, width=df_pivot.返修, orientation='horizontal',color='blue',alpha=0.6)plt.bar_label(bar1)
plt.bar_label(bar2)
plt.bar_label(bar3)

# 6: 饼图: 不同月份拒货,返修的占比,
# 参数 autopct 显示百分比
# explode : 设置炸裂效果,
# startangle=90  : 设置开始画图的角度
# wedgeprops=dict(width=0.4,edgecolor='blue') 设置width 则会生成圆环图,edgecolor='blue' 边线的颜色plt.figure(figsize=(6,6)) # 设置画布的大小
plt.pie(x=df_pivot.拒货,labels=tuple(df_pivot.销售时间), explode=(0,0.2,0,0,0,0),autopct='%.2f%%',startangle=90,wedgeprops=dict(width=0.4,edgecolor='blue'))
# plt.pie(x=df_pivot.返修,radius=0.5)
# plt.pie(x=df_pivot.拒货,radius=0.5,colors=['white','white','white','white','white','white'],startangle=90,)
plt.legend()
# plt.savefig(r'c:/test.png',dpi=500) # dpi 用来设置像素

# 7: 折线图
plt.figure(figsize=(10,6))
plt.plot(df_pivot.销售时间,df_pivot.拒货,color='r',marker='.',ms=5,label='拒货')
plt.plot(df_pivot.销售时间,df_pivot.返修,color='b',marker='.',ms=5,label='返修')# 添加数据标签
for x,y in zip(df_pivot.销售时间,df_pivot.拒货):plt.text(x, y+0.5 ,str(y))
for x,y in zip(df_pivot.销售时间,df_pivot.返修):plt.text(x, y+0.5 ,str(y))
plt.legend() # 显示图例
plt.title('月度趋势图',fontsize=14)# 添加标题

# 当需要在同一个画图上添加多个子图时,方法如下:
# 画布和子图 方法1
fig = plt.figure(figsize=(12,8),dpi=300,facecolor='white') # 设置画布 facecolor 设置画布背景色# 添加图1:
figure1 = fig.add_subplot(221)
plt.plot(df_pivot.销售时间,df_pivot.拒货,marker='.',label='拒货')# 添加图2:柱形图,并添加均值线
figure2 = fig.add_subplot(222)
plt.bar(df_pivot.销售时间, df_pivot.拒货,label='拒货')
mean_num = np.mean(df_pivot.拒货)
plt.axhline(y=mean_num,color='r', linestyle=':')# 添加图3:饼图
figure3 = fig.add_subplot(223)
plt.pie(x=df_pivot.拒货,labels=tuple(df_pivot.销售时间), explode=(0,0.2,0,0,0,0),autopct='%.2f%%',startangle=90)# 添加图4:堆积柱形图
figure4 = fig.add_subplot(224)
bar1 = plt.bar(np.arange(6),df_pivot.拒货,color='red',label='拒货',width=0.5)
bar2 =plt.bar(np.arange(6),df_pivot.质量合格,color='blue',label='质量合格',bottom=df_pivot.拒货,width=0.5)
bar3 =plt.bar(np.arange(6),df_pivot.返修,color='green',label='返修',bottom=df_pivot.质量合格+df_pivot.拒货,width=0.5)
#显示数据标签
plt.bar_label(bar1,color='white')
plt.bar_label(bar2,color='white')
plt.bar_label(bar3)

# 画布和子图 方法2
fig,ax = plt.subplots(2,2,figsize=(12,8))fig1 = ax[0,0]
fig2 = ax[0,1]
fig3 = ax[1,0]
fig4 = ax[1,1]fig1.bar(df_pivot.销售时间,df_pivot.拒货)
fig2.pie(x=df_pivot.拒货,labels=tuple(df_pivot.销售时间))
fig3.plot(df_pivot.销售时间,df_pivot.拒货,marker='.')

# 大图与子区域
# 设置大图
fig = plt.figure() 
left,bottom,width,height = 0.1,0.1,0.8,0.8 # 设置图距离画布边缘的距离
fig1 = fig.add_axes([left,bottom,width,height ])
fig1.bar(df_pivot.销售时间,df_pivot.拒货)
fig1.set_title('拒货分布')# 设置子图设置位置参数
left,bottom,width,height = 0.65,0.65,0.25,0.2
fig2 = fig.add_subplot([left,bottom,width,height ])
fig2.plot(df_pivot.销售时间,df_pivot.拒货,marker='.')
fig2.set_title('趋势图')

# 8: 折线图与柱形图组合图: 不同月份的拒货数量,以及拒货占比
# 准备数据
df_pivot['拒货比'] = df_pivot['拒货']/(df_pivot['拒货']+df_pivot['质量合格']+df_pivot['返修'])fig = plt.figure() # 画布
fig1 = fig.add_subplot(111) # 添加子图
fig1.bar(df_pivot.销售时间,df_pivot.拒货,label ='拒货')
fig1.set_ylim(0,50)
fig1.legend(loc = 'upper left')import matplotlib.ticker as ticker # 用来设置轴标签百分比
fig2=fig1.twinx() # 图2共享图1x轴
fig2.plot(df_pivot.销售时间,df_pivot.拒货比,marker='*', c='r',label='拒货比')
# 设置百分比
pct = ticker.PercentFormatter(1,2) # 0.3设定到30%, 2 代表小数保留2位
fig2.yaxis.set_major_formatter(pct)
fig2.set_ylim(0,0.5)
for x,y in zip(df_pivot.销售时间,df_pivot.拒货比):plt.text(x,y,str(round(y*100,2))+'%')
fig2.legend()

# 9: 散点图
plt.scatter(df1.数量,df1.销售金额,c='b',marker='o',alpha=0.6,linewidths=2)

# 10: 直方图
plt.hist(df1.销售金额, bins=50, edgecolor='w')

#  11: 面积图:先化折线图,再填充plt.plot(df_pivot.销售时间, df_pivot.拒货)
plt.plot(df_pivot.销售时间, df_pivot.质量合格)plt.fill_between(df_pivot.销售时间,0,df_pivot.拒货,facecolor='r',alpha=0.3)
plt.fill_between(df_pivot.销售时间,df_pivot.拒货,df_pivot.质量合格,facecolor='g',alpha=0.3)

# 12: 雷达图 
#  np.pi 是180°#准备数据
df= pd.DataFrame({'name':['A01','A01','A01','A01','A01','A02','A02','A02','A02','A02'],'course':['数学','语文','英语','物理','化学','数学','语文','英语','物理','化学'],'grade':[75,40,79,91,55,57,68,36,89,70]})
df.set_index('name',inplace=True)
query1 = "name=='A01'"
query2 = "name=='A02'"
A01 = df.query(query1)['grade']
# 创建角度
polar_angle = np.linspace(0,2*np.pi,len(A01),endpoint=False)
polar_angle = np.concatenate((polar_angle,[polar_angle[0]])) # 角度数据也需要首尾相连
A01 = np.concatenate((A01,[A01[0]])) # 雷达图需要首尾连接,所以第一个数据需要重复
A02 = df.query(query2)['grade']
A02 = np.concatenate((A02,[A02[0]])) 
course = df.query(query1)['course'] 
course = np.concatenate((course,[course[0]])) 
plt.style.use("ggplot") # 设置画布的样式, 
# 可以使用如下代码查看现有的画图样式,类似于PBI 的风格设置,尝试不同样式的效果,选择合适的。
#print(plt.style.available)fig = plt.figure() # 设置画布
fig1 = fig.add_subplot(111,polar =True)
fig1.plot(polar_angle,A01,'o-',label='A01')
fig1.plot(polar_angle,A02,'o-',label='A02')fig1.fill(polar_angle,A01,'r',alpha=0.25) # 填充颜色
fig1.fill(polar_angle,A02,'b',alpha=0.25)
plt.legend()
fig1.set_thetagrids(polar_angle*180/np.pi,course)

# 13: 瀑布图
# 准备数据
df = pd.DataFrame({'dt':['2020-1-01','2020-1-02','2020-1-03','2020-1-04','2020-1-05','2020-1-06','2020-1-07','2020-1-08'],'amount':[21,18,-10,19,16,-12,13,16]})plt.style.use('ggplot')
# : x 轴先以index 的方式进行,最后替换为日期
xax = np.arange(len(df.amount))
# print(xax)
height = 0 
for i in df.amount.index:x = xax[i]y = df.amount[i]if y >=0:plt.bar(x,y,0.8,align='center',bottom=height,label='盈利',color='r' )else:plt.bar(x,y,0.8,align='center',bottom=height,label='亏损',color='g' )# 调整柱形图的高度height = height + y # 调整x轴的位置x = x + 0.8 
plt.gca().yaxis.grid(True,linestyle='--',alpha=0.25,color='grey')
plt.gca().xaxis.grid(False)
plt.xticks(np.arange(len(df['dt'])),df.dt,rotation=45) # 将x 轴坐标替换为日期

# 14 : 玫瑰图
# create 样本数据
name = list('ABCDEFGHIJKLMNOPQRST')
amount = [805,892,773,744,692,623,605,598,586,585,575,573,562,500,494,469,396,373,357,323]
df1 = pd.DataFrame({'name':name,'amount':amount})
# 数据重新排序后必须重置索引,否则下面的数据拼接就会出错,因为基于的是index 
df = df1.sort_values('amount',ascending=False).reset_index()angle =np.linspace(0,2*np.pi,len(df.amount),endpoint=False)
fig=plt.axes(polar=True) # 实例化极坐标系
# 图.set_theta_direction(-1) # 顺时针为极坐标正方向
fig.set_theta_zero_location('N') # 让0度指向N
color =['b','gold','darkviolet','turquoise','r','g','grey','c','m','y','k','darkorange','lightgreen','plum','tan']# 因为图形需要首位相连,所以需要对数据进行处理
amount = np.concatenate((df.amount,[df.amount[0]]))
angle = np.concatenate((angle,[angle[0]]))
name = np.concatenate((df.name,[df.name[0]]))
plt.bar(angle,amount,width=0.33,color=color)
plt.bar(x=angle, height=130, width=0.33, color='white')  # 挖孔
# 数据标签
for angle, amount, name in zip(angle, amount, name):plt.text(angle+0.03, amount+100, str(name) )
plt.gca().set_axis_off() # 不显示坐标轴

# 添加辅助线及填充
plt.axhline(y=0.2,linewidth = 2, c='g')
plt.axvline(x=0.2,linewidth = 2, c='g')# 画线段
plt.axhline(y=0.5,xmin=0.2,xmax=0.7,linewidth = 2, c='r')# 在指定位置填充,1,1.3 分别代表y轴坐标
plt.axhspan(1,1.3,facecolor='g')
# 在指定位置填充,1,1.3 分别代表x轴坐标
plt.axvspan(2,2.3,facecolor='r',alpha=0.3)# 例子:添加平均线及文本注释
plt.bar(df_pivot.销售时间, df_pivot.拒货,label='拒货',facecolor='g')# add 平均线
mean_num = np.mean(df_pivot.拒货)
plt.axhline(y=mean_num,color='r', linestyle=':') # linestyle 用来设置线形# 添加文本注释
# para:xy:用来指定x,y轴的位置
# shrink: 箭头的长度
# arrowprops: 设置箭头的颜色,样式大小等
plt.annotate("均值线",xy=(9,mean_num+5),arrowprops=dict(facecolor='r', shrink=0.05,headlength=100, width=5, headwidth=10,edgecolor='green',linestyle='--',linewidth=1))

常用的标记marker:

相关文章:

Matplotlib 绘制基本的图表

# 导入包 import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams[font.sans-serif][SimHei] # 用来显示中文 plt.rcParams[axes.unicode_minus] False # 显示负坐标轴# 读取源数据,后续大部分数据基于词文件的数据,需…...

【JavaScript】异步解决方案的发展历程

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…...

前端性能优化三十四:花裤衩模板引入打包分析工具

测量各个插件和loader所花费的时间 (1). install: yarn add speed-measure-webpack-plugin -D(2). Vue-cli 3.x设置: const SpeedMeasurePlugin require(speed-measure-webpack-plugin) const smp new SpeedMeasurePlugin({outputFormat: human }) // 包裹configureWebpac…...

求职小程序列表基础配置-移动端通用列表模块配置教程(1)

求职小程序列表基础配置-移动端通用列表模块配置教程(1) 移动端通用列表页开发指南 准备工作 注册多八多AIIDE账号: 访问多八多AIIDE官网并注册新账号。完成邮箱和手机号的验证。 创建移动应用: 登录后,在工作台新建一个移动应用。填写应用名称,选择“…...

牛客设计模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…...

从零构建tomcat环境

一、官网构建 1.1 下载 一般来说对于开源软件都有自己的官方网站,并且会附上使用文档以及一些特性和二次构建的方法,那么我们首先的话需要从官网或者tomcat上下载到我们需要的源码包。下载地址:官网、Github。 这里需要声明一下&#xff…...

MySQL递归公用表表达式

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:MySQL知识 &…...

深入 K8s 网络原理(一)- Flannel VXLAN 模式分析

1. 概述 这周集中聊下 K8s 的集群网络原理,我初步考虑分成3个方向: Pod-to-Pod 通信(同节点 or 跨节点),以 Flannel VXLAN 模式为例; Pod/External-to-Service 通信,以 iptables 实现为例&…...

fpga 8段4位数码管verilator模拟

8段4位数码管verilator模拟 seg.v module seg(input wire clk,input wire rst_n,output wire[7:0] SEG,output wire[3:0] SEL );reg[7:0] digit[0:15] {8h3f, 8h06, 8h5b, 8h4f, 8h66, 8h6d, 8h7d,8h07,8h7f,8h6f, 8h77, 8h7c, 8h39, 8h5e, 8h79, 8h71};reg[31:0] cnt 32…...

HttpURLConnection发送各种内容格式

通过java.net.HttpURLConnection类实现http post发送Content-Type为multipart/form-data的请求。 json处理使用com.fasterxml.jackson 图片压缩使用net.coobird.thumbnailator log使用org.slf4j 一些静态变量 private static final Charset charset StandardCharsets.UTF_8;…...

摇杆控制人物移动

摇杆控制人物移动 一、UI搭建二、3d模型搭建三、脚本JoyStickBar.csPlayerController.cs 工程在我资源里名字叫Joystickbar.unitypackage [连接](https://download.csdn.net/download/qq_42194657/12043019?spm1001.2014.3001.5503) 一、UI搭建 JoyStickBar是图片背景 JoySt…...

Jenkins自动化部署之后端

准备工作参考本人另外几篇Jenkins相关的文章 新建任务 添加参数配置 字符串参数:分支名称 多选框:项目名称(Extended Choice Parameter插件必备,插件安装参考我另外的文章) 这个分割规则自定义。只要根据Jenkins…...

Could not resolve com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.28.

1、首先进入阿里云maven仓库,在搜索栏输入无法下载的依赖名称,查询现有版本号,可以看到这里有2.9.34。 2、在build.gradle(Project)的buildscript闭包下替换为阿里云maven仓库: maven { url https://www.jitpack.io } maven { u…...

RK3588平台开发系列讲解(AI 篇)RKNN rknn_query函数详细说明

文章目录 一、查询 SDK 版本二、查询输入输出 tensor 个数三、查询输入 tensor 属性(用于通用 API 接口)四、查询输出 tensor 属性(用于通用 API 接口)五、查询模型推理的逐层耗时六、查询模型推理的总耗时七、查询模型的内存占用情况八、查询模型里用户自定义字符串九、查询原…...

15个主流设计灵感网站,激发你的创作灵感!

即时设计 即时设计是一种强大的云设计工具,已成为许多设计师、产品经理和开发人员的首选工具之一。即时设计用户可以使用内置的工具和功能快速创建和编辑设计,或与其他用户共享和合作。此外,即时设计还有一个丰富的资源社区,为用…...

Matlab:解非线性方程组

1、基于问题求解非线性方程组 例: xoptimvar(x,2); %将x定义为一个二元素优化变量 eq1exp(-exp(-(x(1)x(2))))x(2)*(1x(1)^2); %创建第一个方程作为优化等式表达式 eq2x(1)*cos(x(2))x(2)*sin(x(1))1/2; %创建第二个方程作为优化等式表达式 probe…...

面向 AI,重塑云基础设施、存储、芯片、Serverless……2023亚马逊云科技re:Invent中国行

一年一度亚马逊云科技重要的技术盛会 re:Invent 刚落下帷幕,2023 亚马逊云科技 re:Invent 中国行就将其中重要的信息与内容带给了中国市场和用户。作为全球的云计算巨头,今年亚马逊云科技可以说全面加码 AI,例如发布完整的端到端生成式 AI 技…...

【JDK新特性】JDK和Springboot各版本新特性介绍

目录 参考资料 以下是一些较新版本的JDK的主要新特性介绍: JDK 8: Lambda 表达式:引入了函数式编程的概念,使得代码更简洁、可读性更强。Stream API:提供了一种高效处理集合数据的方式,支持并行处理。默认…...

tomcat剖析:开篇

一、简介 本专栏为解析tomcat的专栏,用于一步步的从构建到执行,再到剖析tomcat的内部构造,然后再加上自己的理解,从0到1去认识我们日常开发中不可或缺的web容器,希望对之后的软件设计能够有所启示。 二、步骤 2.1构…...

华为路由器:DHCP配置

在大型企业网络中,会有大量的主机获取IP地址等网络参数。如果采用手工配置,则工作量大不好管理,若用户擅自更改网络参数,则容易导致IP冲突。 因此使用动态主机配置协议(DHCP)可以减少管理员的工作量&#x…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

全面解析各类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…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...

Yii2项目自动向GitLab上报Bug

Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...

【Redis】Redis从入门到实战:全面指南

Redis从入门到实战:全面指南 一、Redis简介 Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,它可以用作数据库、缓存和消息代理。由Salvatore Sanfilippo于2009年开发,因其高性能、丰富的数据结构和广泛的语言支持而广受欢迎。 Redis核心特点:…...

第14节 Node.js 全局对象

JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局…...

学习 Hooks【Plan - June - Week 2】

一、React API React 提供了丰富的核心 API,用于创建组件、管理状态、处理副作用、优化性能等。本文档总结 React 常用的 API 方法和组件。 1. React 核心 API React.createElement(type, props, …children) 用于创建 React 元素,JSX 会被编译成该函数…...

第2课 SiC MOSFET与 Si IGBT 静态特性对比

2.1 输出特性对比 2.2 转移特性对比 2.1 输出特性对比 器件的输出特性描述了当温度和栅源电压(栅射电压)为某一具体数值时,漏极电流(集电极电流...