【Python百日进阶-数据分析】Day125 - plotly.express.scatter():散点图

news2024/11/17 9:56:54

文章目录

  • 一、散点图语法
  • 二、参数
  • 三、返回类型
  • 四、示例
    • 4.1 array_like 对象
    • 4.2 DataFrame 列
    • 4.3 使用列名设置大小和颜色
    • 4.4 颜色可以是连续的,也可以是离散的/分类的。
    • 4.5 所述symbol参数可以被映射到的列,可以使用多种符号。
    • 4.6 Dash 中的散点图
    • 4.7 散点图和分类轴
    • 4.8 误差条
    • 4.9 边际分布图
    • 4.10 Facetting
    • 4.11 线性回归和其他趋势线

一、散点图语法

plotly.express.scatter(data_frame=None, # Pandas DataFrame
                       x=None,      # data_frame中列的名称
                       y=None,      # data_frame中列的名称
                       color=None,  # data_frame中列的名称,用于为标记分配颜色
                       symbol=None, # data_frame中列的名称,将符号分配给标记
                       size=None,   # data_frame中列的名称,分配标记大小
                       hover_name=None, # data_frame中列的名称,悬停工具提示中以粗体显示
                       hover_data=None, # data_frame中列的名称,在悬停工具提示中显示为额外数据
                       custom_data=None,    # data_frame中列的名称,数据不是用户可见的,但包含在图形发出的事件中(套索选择等)
                       text=None,       # data_frame中列的名称,显示为文本标签
                       facet_row=None,  # data_frame中列的名称,在垂直方向为分面子图分配标记
                       facet_col=None,  # data_frame中列的名称,将标记分配给水平方向的分面子图
                       facet_col_wrap=0,# 分面列的最大数量。以此宽度包装列变量,以便列面跨越多行。
                       facet_row_spacing=None,  # 分面行之间的间距 默认值为 0.03 或 0.0.7
                       facet_col_spacing=None,  # 分面列之间的间距,以页面为单位 默认为 0.02。
                       error_x=None,        # data_frame中列的名称,确定负方向上的 x 轴误差条的大小
                       error_x_minus=None,  # data_frame中列的名称,确定负方向上的 x 轴误差条的大小
                       error_y=None,        # data_frame中列的名称,确定 y 轴误差线的大小
                       error_y_minus=None,  # data_frame中列的名称,在负方向上调整 y 轴误差条的大小
                       animation_frame=None,    # data_frame中列的名称,为动画帧分配标记
                       animation_group=None,    # data_frame中列的名称,跨动画帧的对象恒定性
                       category_orders=None,    # 强制对每列的值进行特定排序
                       labels=None, # 默认情况下,列名在图中用于轴标题、图例条目和悬停
                       orientation=None,    # str,'h'水平或'v'垂直之一。
                       color_discrete_sequence=None,    # 字符串应该定义有效的 CSS 颜色
                       color_discrete_map=None, # 字符串值应该定义有效的 CSS-colors 用于覆盖 color_discrete_sequence
                       color_continuous_scale=None, # 构建连续的颜色比例。
                       range_color=None,    # 两个数字的列表,覆盖连续色标上的自动缩放
                       color_continuous_midpoint=None,  # 计算连续色标的边界以获得所需的中点
                       symbol_sequence=None, # 描述category_orders
                       symbol_map=None, # 由symbol 表示的列中的值
                       opacity=None,    # 介于 0 和 1 之间的值。设置标记的不透明度
                       size_max=None,   # 使用时设置最大标记大小
                       marginal_x=None, # 在主图上方绘制水平子图
                       marginal_y=None, # 在主图的右侧绘制一个垂直子图
                       trendline=None,  # 趋势线(STR) 'ols','lowess','rolling','expanding'或'ewm'。
                       trendline_options=None,  # trendline作为第一个参数传递给函数的选项
                       trendline_color_override=None,   # 所有趋势线都将以这种颜色绘制
                       trendline_scope='trace', # 'trace'or 'overall','trace'则每条轨迹绘制一条趋势线
                       log_x=False, # x 轴在笛卡尔坐标中对数缩放
                       log_y=False, # y 轴在笛卡尔坐标中对数缩放
                       range_x=None,    # 则覆盖笛卡尔坐标中 x 轴上的自动缩放
                       range_y=None,    # 则覆盖笛卡尔坐标中 y 轴上的自动缩放
                       render_mode='auto', #  'auto','svg'或者'webgl',默认'auto'控件用于绘制标记的浏览器的API
                       title=None,  # 图形标题
                       template=None,   # 图形模板名称
                       width=None,  # 以像素为单位的图形宽度
                       height=None) # 以像素为单位的图形高度

在散点图中,每一行data_frame由二维空间中的符号标记表示。

二、参数

  • data_frame ( DataFrame or array-like or dict ) – 这个参数需要传递给要使用的列名(而不是关键字名)。Array-like 和 dict 在内部转换为 Pandas DataFrame。可选:如果丢失,则使用其他参数在幕后构造一个 DataFrame。

  • x ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。来自此列或 array_like 的值用于在笛卡尔坐标中沿 x 轴定位标记。任一x或 y可任选地是列引用或array_likes的列表,在这种情况下,就像它是“宽”,而不是“长”的数据将被处理。

  • y ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。来自此列或 array_like 的值用于在笛卡尔坐标中沿 y 轴定位标记。任一x或 y可任选地是列引用或array_likes的列表,在这种情况下,就像它是“宽”,而不是“长”的数据将被处理。

  • color ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或array_like 中的值用于为标记分配颜色。

  • symbol 符号(str或int或Series或类似数组)– data_frame中列的名称,或 Pandas Series 或 array_like 对象。此列或array_like 中的值用于将符号分配给标记。

  • size ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或array_like 中的值用于分配标记大小。

  • hover_name ( str or int or Series or array-like ) – data_frame中列的名称,或者pandas Series或array_like对象。此列或类似数组的值在悬停工具提示中以粗体显示。

  • hover_data 悬停数据(str或int列表,或Series或类似数组,或dict)–data_frame或 pandas Series 中的列名称列表,或类似数组的对象或以列名作为键的 dict,值为 True(默认情况下)格式) False(为了从悬停信息中删除此列),或格式字符串,例如 ‘:.3f’ 或 ’ | %a’ 或类似列表的数据出现在悬停工具提示或元组中,bool 或格式化字符串作为第一个元素,类似列表的数据出现在悬停中作为第二个元素这些列中的值在悬停工具提示中显示为额外数据.

  • custom_data(str或int列表,或Series或array-like)– data_frame中列的名称,或 Pandas Series,或 array_like 对象这些列中的值是额外的数据,例如用于小部件或 Dash 回调。此数据不是用户可见的,但包含在图形发出的事件中(套索选择等)

  • text ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或array_like 中的值在图中显示为文本标签。

  • facet_row ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或array_like 中的值用于在垂直方向为分面子图分配标记。

  • facet_col ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或array_like 中的值用于将标记分配给水平方向的分面子图。

  • facet_col_wrap ( int ) – 分面列的最大数量。以此宽度包装列变量,以便列面跨越多行。如果为 0,则忽略,如果设置了facet_row或 a,marginal则强制为 0 。

  • facet_row_spacing ( float between 0 and 1 ) – 分面行之间的间距,以页面为单位。使用 facet_col_wrap 时,默认值为 0.03 或 0.0.7。

  • facet_col_spacing ( float between 0 and 1 ) – 分面列之间的间距,以页面为单位 默认为 0.02。

  • error_x ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或 array_like 中的值用于确定 x 轴误差线的大小。如果error_x_minus是None,误差线将是对称的,否则error_x仅用于正方向。

  • error_x_minus ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或 array_like 中的值用于确定负方向上的 x 轴误差条的大小。如果error_x 是 None则忽略。

  • error_y ( str or int or Series or array-like ) – data_frame中列的名称,或pandas Series或array_like对象。此列或 array_like 中的值用于确定 y 轴误差线的大小。如果error_y_minus是None,误差线将是对称的,否则error_y仅用于正方向。

  • error_y_minus ( str or int or Series or array-like ) – data_frame中列的名称,或者pandas Series或array_like对象。此列或 array_like 中的值用于在负方向上调整 y 轴误差条的大小。如果error_y 是 则忽略None。

  • animation_frame(str或int或Series或array-like)– data_frame中列的名称或 Pandas Series 或 array_like 对象。此列或array_like 中的值用于为动画帧分配标记。

  • animation_group(str或int或Series或array-like)– data_frame中列的名称或 Pandas Series 或 array_like 对象。来自此列或 array_like 的值用于提供跨动画帧的对象恒定性:具有匹配 “ animation_group”的行将被视为它们在每一帧中描述相同的对象。

  • category_orders(带有 str 键的字典和 str 值列表(默认{}))——默认情况下,在 Python 3.6+ 中,轴、图例和方面中分类值的顺序取决于这些值第一次遇到的顺序data_frame(并且没有3.6 以下的 Python 中默认保证顺序)。此参数用于强制对每列的值进行特定排序。这个字典的键应该对应于列名,值应该是与所需的特定显示顺序对应的字符串列表。

  • labels 标签(带有 str 键和 str 值的字典(默认{}))——默认情况下,列名在图中用于轴标题、图例条目和悬停。这个参数允许它被覆盖。此字典的键应对应于列名,值应对应于要显示的所需标签。

  • orientation 方向(str,‘h’水平或’v’垂直之一。)-(默认’v’如果x和y提供并且两者都是连续的或两者都是分类的,否则’v’('h' )是分类的并且 )是连续的,否则提供'h' )) if x(yy(x’v’() if only x(y

  • color_discrete_sequence(str 列表)——字符串应该定义有效的 CSS 颜色。当color设置为 并且相应列中的值不是数字时,该列中的值通过color_discrete_sequence 按 中描述的顺序循环分配颜色category_orders,除非 的值 color是 中的键color_discrete_map。plotly.express.colors子模块中提供了各种有用的颜色序列,特别是plotly.express.colors.qualitative.

  • color_discrete_map(带有 str 键和 str 值的字典(默认{}))——字符串值应该定义有效的 CSS-colors 用于覆盖 color_discrete_sequence以将特定颜色分配给与特定值对应的标记。键入的color_discrete_map应该是由 表示的列中的值color。或者,如果 的值color是有效颜色,则’identity’可以传递字符串以直接使用它们。

  • color_continuous_scale ( str 列表) – 字符串应该定义有效的 CSS-colors 当 由 表示的列color包含数字数据时,此列表用于构建连续的颜色比例。plotly.express.colors子模块中提供了各种有用的色阶 ,特别 plotly.express.colors.sequential是plotly.express.colors.diverging 和plotly.express.colors.cyclical。

  • range_color(两个数字的列表)– 如果提供,则覆盖连续色标上的自动缩放。

  • color_continuous_midpoint (number (default None)) – 如果设置,计算连续色标的边界以获得所需的中点。使用plotly.express.colors.diverging色阶作为 的输入时, 建议设置此值 color_continuous_scale。

  • symbol_sequence(str 列表)——字符串应该定义有效的 plotly.js 符号。当symbol被设置时,该列中的值由通过循环分配的符号 symbol_sequence中的顺序描述category_orders,除非的值symbol是在一个关键symbol_map。

  • symbol_map(带有 str 键和 str 值的字典(默认{}))——字符串值应该定义 plotly.js 符号 用于覆盖symbol_sequence以将特定符号分配给与 特定值对应的标记。键入的symbol_map应该是由symbol 表示的列中的值。或者,如果 的值symbol 是有效的符号名称,则’identity’可以传递字符串以直接使用它们。

  • opacity ( float ) – 介于 0 和 1 之间的值。设置标记的不透明度。

  • size_max (int (default 20)) – 使用时设置最大标记大小size。

  • marginal_x(STR) -其中一个’rug’,‘box’,‘violin’,或’histogram’。如果设置,则在主图上方绘制水平子图,以可视化 x 分布。

  • marginal_y(STR) -其中一个’rug’,‘box’,‘violin’,或’histogram’。如果设置,则在主图的右侧绘制一个垂直子图,以可视化 y 分布。

  • trendline 趋势线(STR) -其中一个’ols’,‘lowess’,‘rolling’,‘expanding’或’ewm’。如果 ‘ols’,将为每个离散颜色/符号组绘制普通最小二乘回归线。如果’lowess’,将为每个离散颜色/符号组绘制局部加权散点图平滑线。如果’rolling’,将为每个离散颜色/符号组绘制滚动(例如滚动平均值、滚动中值)线。如果是 ‘expanding’,将为每个离散颜色/符号组绘制一条扩展(例如扩展平均值、扩展总和)线。如果’ewm’,将为每个离散颜色/符号组绘制指数加权矩(例如指数加权移动平均线)线。请参阅文档字符串中的函数 plotly.express.trendline_functions有关这些函数的更多详细信息以及如何使用trendline_options 参数配置它们。

  • Trendline_options ( dict ) – 从 trendline参数中plotly.express.trendline_functions 命名的作为第一个参数传递给函数的选项 。

  • Trendline_color_override ( str ) – 有效的 CSS 颜色。如果提供并trendline设置,则所有趋势线都将以这种颜色绘制,而不是与绘制输入的轨迹的颜色相同。

  • Trendline_scope (str (one of ‘trace’or ‘overall’, default ‘trace’)) – 如果’trace’,则每条轨迹绘制一条趋势线(即每个颜色、符号、面、动画帧等),如果’overall’然后为整个数据集计算一条趋势线,并在所有数据集上复制方面。

  • log_x (boolean (default False)) – 如果True,x 轴在笛卡尔坐标中对数缩放。

  • log_y (boolean (default False)) – 如果True,y 轴在笛卡尔坐标中对数缩放。

  • range_x(两个数字的列表)– 如果提供,则覆盖笛卡尔坐标中 x 轴上的自动缩放。

  • range_y(两个数字的列表)– 如果提供,则覆盖笛卡尔坐标中 y 轴上的自动缩放。

  • render_mode(STR) -其中一个’auto’,‘svg’或者’webgl’,默认’auto’控件用于绘制标记的浏览器的API。‘svg’ 适用于少于 1000 个数据点的数字,并允许完全矢量化输出。 'webgl’可能需要 1000 点以上的可接受性能,但光栅化部分输出。 'auto’使用启发式方法来选择模式。

  • title ( str ) – 图形标题。

  • template 模板(str或dict或plotly.graph_objects.layout.Template 实例)——图形模板名称(必须是 plotly.io.templates 中的一个键)或定义。

  • width (int (default None)) – 以像素为单位的图形宽度。

  • height (int (default None)) – 以像素为单位的图形高度。

三、返回类型

plotly.graph_objects.Figure

四、示例

4.1 array_like 对象

# x and y given as array_like objects
import plotly.express as px
fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])
fig.show()

在这里插入图片描述

4.2 DataFrame 列

# x and y given as DataFrame columns
import plotly.express as px
df = px.data.iris() # iris is a pandas DataFrame
fig = px.scatter(df, x="sepal_width", y="sepal_length")
fig.show()

在这里插入图片描述

4.3 使用列名设置大小和颜色

带有可变大小圆形标记的散点图通常称为气泡图。请注意,将color和size数据添加到悬停信息中。您可以使用hover_data参数添加其他列来悬停数据px.scatter。

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
                 size='petal_length', hover_data=['petal_width'])
fig.show()

在这里插入图片描述

4.4 颜色可以是连续的,也可以是离散的/分类的。

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color='petal_length')
fig.show()

在这里插入图片描述

4.5 所述symbol参数可以被映射到的列,可以使用多种符号。

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", symbol="species")
fig.show()

在这里插入图片描述

4.6 Dash 中的散点图

Dash是使用 Plotly 图形在 Python 中构建分析应用程序的最佳方式。

import dash
from dash import dcc,html
from dash.dependencies import Input, Output
import plotly.express as px

df = px.data.iris()

app = dash.Dash(__name__)

app.layout = html.Div([
    dcc.Graph(id="scatter-plot"),
    html.P("花瓣长度:"),
    dcc.RangeSlider(
        id='range-slider',
        min=0, max=2.5, step=0.1,
        marks={0: '0', 2.5: '2.5'},
        value=[0.5, 2]
    ),
])

@app.callback(
    Output("scatter-plot", "figure"),
    [Input("range-slider", "value")])
def update_bar_chart(slider_range):
    low, high = slider_range
    mask = (df['petal_width'] > low) & (df['petal_width'] < high)
    fig = px.scatter(
        df[mask], x="sepal_width", y="sepal_length",
        color="species", size='petal_length',
        hover_data=['petal_width'])
    return fig

app.run_server(debug=True)

在这里插入图片描述

4.7 散点图和分类轴

可以使用任何类型的笛卡尔轴制作散点图,包括linear、logarithmic、categorical或date轴。

其中一个轴是分类的散点图通常称为点图。

import plotly.express as px
df = px.data.medals_long()

fig = px.scatter(df, y="nation", x="count", color="medal", symbol="medal")
fig.update_traces(marker_size=10)
fig.show()

在这里插入图片描述

4.8 误差条

散点图支持误差线。

import plotly.express as px
df = px.data.iris()
df["e"] = df["sepal_width"]/100
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
                 error_x="e", error_y="e")
fig.show()

在这里插入图片描述

4.9 边际分布图

散点图支持边缘分布图

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_length", y="sepal_width", marginal_x="histogram", marginal_y="rug")
fig.show()

在这里插入图片描述

4.10 Facetting

散点图支持faceting。

import plotly.express as px
df = px.data.tips()
fig = px.scatter(df, x="total_bill", y="tip", color="smoker", facet_col="sex", facet_row="time")
fig.show()

在这里插入图片描述

4.11 线性回归和其他趋势线

散点图支持线性和非线性趋势线。

import plotly.express as px

df = px.data.tips()
fig = px.scatter(df, x="total_bill", y="tip", trendline="ols")
fig.show()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础转行学python有必要去培训机构吗

Python语言&#xff0c;以其简单易学成为不少人学习编程语言的新方向。而市面上也出来了各种各样的python培训机构&#xff0c;不少人就有疑惑了&#xff0c;既然python语言简单易学&#xff0c;那么还有必要去培训机构系统学习吗&#xff1f;知了堂认为&#xff0c;如果你是想…

人工智能:声纹识别技术介绍

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

使用gitee将本地资源上传

在编程时&#xff0c;写好本地文件以后我们可以使用gitee将写的东西上传到gitee官网上分享或者让我们自己可以随时查看&#xff0c;首先&#xff0c;我们需要下载git这个软件&#xff0c;在这里推荐使用电脑管家里面的软件管理下载 &#xff0c;软件图标如下&#xff1a; 1.生成…

自定义RBAC(4)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 前面把RBAC的权限系统设计过程都讲清楚了&#xff0c;现在就来实现它。大致分这么几个步骤&#xff1a; 1、先定义出完整的权限系统表结构&#xff1b; 2、实现…

Sqlite 数据库操作(二)—— Sqlite常用API 及其使用方法

要使用sqlite数据库的API&#xff0c;需要满足两个条件&#xff1a; 安装sqlite3函数库 —— 终端输入 sudo apt-get install libsqlite3-dev 在程序中引入头文件 sqlite3.h —— #include <sqlite3.h>gcc编译时链接 sqlite3动态库 …

atompark:外贸工具-Atomic 6合一系列产品-Crack

Atomic Studio 邮件发件人Atomic Mail Sender 我们最畅销的电子邮件活动工具 邮件发件人 群发邮件发件人 使用我们内置的 SMTP 或您自己的&#xff01; 按姓名称呼收件人 移除退订者 电子邮件猎手 发现网站上的电子邮件地址 按关键字搜索 执行高速和准确的搜索 邮件验证器 …

Synchronized原理

Synchronized原理一、基本特点二、加锁工作过程 (锁升级/锁膨胀)2.1 偏向锁2.2 轻量级锁2.3 重量级锁三、锁消除四、锁粗化五、总结一、基本特点 结合锁策略&#xff0c;我们就可以总结出 Synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁, 如果锁冲突…

数据结构.数组

数据结构.数组1.数组的概念和特点2.数组的定义和初始化3.数组的遍历4.数组的基本操作&#xff08;不多说 注解很详细&#xff09;5.操作的时间复杂度1.数组的概念和特点 数组就是一种容器&#xff08;装数据的&#xff09;&#xff0c;用来存储相同类型的数据值。 数组的特点…

RRT_star MATLAB

colormap 函数 创建栅格地图 clc clear close all%% 构建颜色MAP图 cmap [1 1 1; ... % 1-白色-空地0 0 0; ... % 2-黑色-静态障碍1 0 0; ... % 3-红色-动态障碍1 1 0;... % 4-黄色-起始点 1 0 1;... % 5-品红-目标点0 1 0…

Canal同步mysql binlog至pulsar

Canal 一、简介 canal [kə’nl]&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 基于日志增量订阅和消费的业务包括 数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处…

【数据结构】队列(链式队列)

作者&#xff1a;一个喜欢猫咪的的程序员 专栏&#xff1a;《数据结构》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 队列的结构和概念&#xff1a; Queue.h文件 Queue.c文件 Test.c文件&am…

ElasticSearch分布式架构原理

一个ES集群中有多个Server节点&#xff0c;每个Server节点中含有多个Index。 主节点&#xff08;Master&#xff09; 主资格节点的主要职责是和集群操作相关的内容&#xff0c;如创建或删除索引&#xff0c;跟踪哪些节点是集群的一部分&#xff0c;并决定哪些分片分配给相关的…

文件系统篇

目录 1.文件系统的基本组成 1.1.文件 1.1.1.目录项和目录是一个东西吗&#xff1f; 1.1.2.那文件数据是如何存储在磁盘的呢&#xff1f; 2.page cache 2.1.进程写文件时&#xff0c;进程发生了崩溃&#xff0c;已写入的数据会丢失吗 2.2.page cache是什么&#xff1f; …

Docker:网络配置

目录 一、网络模式简介 二、bridge模式以及host模式的命令演示 bridge模式 host模式 三、自定义网络 一、网络模式简介 Docker在创建容器时有四种网络模式&#xff1a;bridge/host/container/none&#xff0c;bridge为默认不需要用--net去指定&#xff0c;其他三种模式需要…

CAS机制和synchronize的原理及其优化机制(锁消除 偏向锁 自旋锁 膨胀锁 锁粗化)

乐观锁的问题&#xff1a;并不总是能处理所有问题&#xff0c;所以会引入一定的系统复杂度。 读写锁 把加锁操作分成了俩种 一是读锁二是写锁 也就是说在读和读之间是没有互斥的 但是在读写和写写之间就会存在互斥 如果一个场景是一写多度 那么使用这个效率就会很高 重量级锁…

【数据结构与算法】B_树

目录 前言&#xff1a; 一、B树 1、B树概念 2、B树查找 3、B树插入 4、B树前序遍历 5、B树性能 二、B、B*树 1、B树概念 2、B树的插入 2、B*树概念 3、总结 三、B系列树的应用 总结 前言&#xff1a; 我们已经有很多索引的数据结构了 例如&#xff1a; 顺序查找 …

CAD外部参照文件的分解

最近遇到一个编图要求&#xff1a; “图纸文件的内容主要由模型空间和布局空间内的信息组成&#xff0c;尽量减少外部参照的使用。” 我们的综合图分幅主要依照外部参照来的&#xff0c;图件的本体只有1个&#xff0c;分幅图中只有布局试图有点线面等实体存在&#xff0c;模型…

阿里二面:用过GC日志可视化工具进行JVM调优吗?

上周有个小伙伴面了阿里&#xff0c;在二面中被问到GC日志分析&#xff0c;感觉回答的不是很好&#xff0c;过来找我复盘&#xff0c;大致听了他的回答&#xff0c;虽然回答出了部分&#xff0c;但是没抓到重点。 GC日志分析算是JVM调优中比较难的部分&#xff0c;今天这篇文章…

0123 双指针 Day12

剑指 Offer 25. 合并两个排序的链表 输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1&#xff1a; 输入&#xff1a;1->2->4, 1->3->4 输出&#xff1a;1->1->2->3->4->4 /*** Definition for si…

安科瑞嵌入式多功能计量表AEM96 精度0.5S级 2-31次分次谐波

安科瑞 王晶淼/刘芳 一、产品概述 AEM系列三相嵌入式电能计量表是一款主要针对电力系统、工矿企业、公用设施的电能统计、管理需求而设计的智能电能表&#xff0c;集成三相电力参数测量及电能计量与考核管理&#xff0c;提供上24时&#xff0c;上31日以及上12月的电能数据统计…