目录
1. 散点图适用场景分析
散点图通过点的位置和分布来展示数据之间的关系,这种直观性使得用户能够迅速理解数据的特征和规律。相比于其他复杂的图表类型,散点图更加简洁明了,易于被用户接受和理解。
散点图具有很高的灵活性,可以根据数据的实际情况和分析需求进行定制。例如,可以通过调整点的颜色、形状和大小来展示不同的数据类别或维度,或者使用不同的坐标轴来展示不同的数据范围。此外,还可以结合其他可视化元素(如标签、网格线、趋势线等)来增强图表的可读性和信息量。
1.1 显示数据关系
散点图最常用于展示两个变量之间的关系。通过点的位置和分布,用户可以直观地观察到两个变量之间是否存在某种关联、趋势或模式。
1.2 识别异常值
散点图有助于用户快速识别出数据中的异常值或离群点。这些异常值可能是数据采集或记录过程中的错误,也可能是具有特殊意义的关键数据。通过观察散点图中偏离主要数据区域的点,用户可以进一步探索这些异常值的原因和影响。
1.3 展示数据分布
散点图还可以展示数据的分布情况,包括数据的集中程度、分散程度以及是否存在聚类现象等。这些信息对于了解数据的整体特征和规律非常重要。
1.4 多维度分析
虽然散点图主要用于展示两个变量之间的关系,但通过使用不同颜色、形状或大小的标记,用户可以同时观察多个指标之间的关系。这种多维度分析功能使得散点图在市场调研、客户分析、金融投资等领域具有广泛的应用。
散点图也可以是三维的!
1.5 特定领域的应用
- 生物学:研究人员可以使用散点图来分析生物样本的多个指标之间的关系,如基因表达量与生物表型之间的关联,或者药物剂量与治疗效果的关系。
- 市场营销:企业可以利用散点图分析市场调研数据,如产品价格与销售量、广告投入与销售额之间的关系,以制定更有效的营销策略。
- 金融投资:投资者可以使用散点图来分析股票的收益率与市场指数的关系,或者投资组合中不同资产的风险和收益关系。
- 人力资源管理:企业可以使用散点图来分析员工的绩效与工作经验、培训时间等因素之间的关系,以制定更合理的人力资源管理策略。
- 疾病研究:医学研究者可以使用散点图分析疾病的发病率与年龄、性别、生活习惯等因素之间的关系,以了解疾病的发病规律和危险因素。
2. 散点图局限性
散点图在异常值识别中也存在一些局限性,如判断标准不一、缺乏统计依据、维度限制等。
3. 散点图代码实现
3.1 二维散点图Python 源代码
Dash 模块是一个非常好用的模块!!!
import dash
from dash import html, dcc
import dash_bootstrap_components as dbc
import plotly.graph_objects as go
import numpy as np
def create_demo_charts():
"""
创建演示用的各种基本图表
返回一个包含多个图表的列表
"""
# 创建示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 3. 散点图
np.random.seed(42)
random_x = np.random.randn(100)
random_y = np.random.randn(100)
scatter_fig = go.Figure(data=[
go.Scatter(
x=random_x,
y=random_y,
mode='markers',
marker=dict(
size=8,
color=random_x,
colorscale='Viridis',
showscale=True
)
)
])
scatter_fig.update_layout(
title='散点图示例',
xaxis_title='X轴',
yaxis_title='Y轴',
template='plotly_white'
)
return [scatter_fig]
# 创建 Dash 应用,使用 Bootstrap 样式
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
app.layout = html.Div([
# 图表展示区域
html.Div([
html.H3("数据可视化展示", className="text-center mt-4 mb-3"),
dbc.Row([
dbc.Col(dcc.Graph(figure=create_demo_charts()[0]), width=6)
], className="mb-4"),
], style={"backgroundColor": "#f0fff4", "padding": "20px", "borderRadius": "10px"}),
], style={"padding": "20px"})
if __name__ == "__main__":
app.run_server(debug=True, port=8051)
3.2 二维散点图效果(网页显示)
3.3 三维散点图Python 源代码
import dash
from dash import html, dcc
import dash_bootstrap_components as dbc
import plotly.graph_objects as go
import numpy as np
def create_demo_charts():
"""
创建演示用的各种基本图表
返回一个包含多个图表的列表
"""
# 创建示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 3. 3D散点图
np.random.seed(42)
random_x = np.random.randn(100)
random_y = np.random.randn(100)
random_z = np.random.randn(100)
scatter_fig = go.Figure(data=[
go.Scatter3d(
x=random_x,
y=random_y,
z=random_z,
mode='markers',
marker=dict(
size=8,
color=random_z, # 使用z值作为颜色
colorscale='Viridis',
opacity=0.8,
showscale=True
)
)
])
scatter_fig.update_layout(
title='3D散点图示例',
scene=dict(
xaxis_title='X轴',
yaxis_title='Y轴',
zaxis_title='Z轴'
),
template='plotly_white'
)
return [scatter_fig]
# 创建 Dash 应用,使用 Bootstrap 样式
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
app.layout = html.Div([
# 图表展示区域
html.Div([
html.H3("数据可视化展示", className="text-center mt-4 mb-3"),
dbc.Row([
dbc.Col(dcc.Graph(figure=create_demo_charts()[0]), width=6)
], className="mb-4"),
], style={"backgroundColor": "#f0fff4", "padding": "20px", "borderRadius": "10px"}),
], style={"padding": "20px"})
if __name__ == "__main__":
app.run_server(debug=True, port=8051)
3.4 三维散点图(网页显示)