【Python】数据可视化之点线图

【Python】数据可视化之点线图在散点图中 每个观测值 或数据点 都被表示为一个点 其中横轴 X 轴 代表一个变量的值 而纵轴 Y 轴 代表另一个变量的值

大家好,欢迎来到IT知识分享网。

目录

散点图

气泡图

时序图

关系图


​​​​​​​

散点图

Scatterplot(散点图)是一种用于展示两个变量之间关系的图表类型。在散点图中,每个观测值(或数据点)都被表示为一个点,其中横轴(X轴)代表一个变量的值,而纵轴(Y轴)代表另一个变量的值。这些点的位置(即它们在图表上的x和y坐标)反映了两个变量之间的关系。

散点图非常适合于初步探索两个变量之间是否存在关系,以及这种关系的强度和方向。通过观察点的分布模式,可以识别出正相关、负相关、无相关或非线性关系。在散点图中,远离大多数数据点的观测值(即异常值或极端值)很容易被识别出来。同时,在统计学中,散点图可以用于支持或反驳关于两个变量之间关系的假设。

散点图需要注意一些问题:

  • 当数据点过多时,散点图可能会变得难以解读,因为点可能会重叠在一起。在这种情况下,可以考虑使用其他可视化方法,如密度图或六边形分箱图。
  • 散点图只能显示两个变量之间的关系,如果数据集包含多个变量,可能需要使用其他类型的图表(如多维散点图或平行坐标图)来展示更多信息。
  • 在解读散点图时,要注意数据点的分布是否均匀,以及是否存在潜在的偏差或异常值。
# 设置图形风格为whitegrid sns.set(style="whitegrid") # 加载diamonds数据集 diamonds = sns.load_dataset("diamonds") # 创建一个8x8的图形 f, ax = plt.subplots(figsize=(8, 8)) # 去除图形的左边和底部的边框 sns.despine(f, left=True, bottom=True) # x轴为depth,y轴为table,颜色为红色,数据为diamonds,坐标轴为ax,标记为圆形,大小为100,边框宽度为0.5,边框颜色为白色 sns.scatterplot(x="depth", y="table",color='r',data=diamonds, ax=ax, marker="o", s=100, linewidth=0.5, edgecolor="w")

【Python】数据可视化之点线图

也可以使用plt绘制 

# 生成一些随机数据 np.random.seed(0) x = np.random.rand(100) y = np.random.rand(100) # 设置图表大小 plt.figure(figsize=(10, 6)) # s是点的大小,c是颜色,alpha是透明度,edgecolors是边缘颜色 plt.scatter(x, y, s=50, c='blue', alpha=0.6, edgecolors='w') # 添加标题和标签 plt.title('Scatterplot', fontsize=16) plt.xlabel('X Axis', fontsize=14) plt.ylabel('Y Axis', fontsize=14) # 设置坐标轴范围 plt.xlim(0, 1) plt.ylim(0, 1) # 添加网格线 plt.grid(True, which='both', linestyle='--', linewidth=0.5) # 显示图例 plt.legend(['Data'], loc='upper left', fontsize=12) # 显示图表 plt.show()

【Python】数据可视化之点线图

气泡图

气泡图(Bubble Chart)是一种多变量的数据可视化图表,它是散点图的一种变体,也可以看作是散点图和百分比区域图的组合。气泡图通过引入第三个变量来展示三个变量之间的关系,使得数据展示更加丰富和全面。

  • 多变量展示:能够同时展示三个或更多维度的数据。
  • 直观比较:通过气泡的位置和大小,可以直观地比较不同类别的数据。
  • 灵活性强:气泡图可以根据需要调整气泡的形状、颜色和透明度等属性,以增强视觉效果。
# 加载名为"planets"的数据集 planets = sns.load_dataset("planets") # 创建一个颜色映射 cmap = sns.cubehelix_palette(as_cmap=True) # 绘制散点图,x轴为"distance",y轴为"orbital_period",颜色映射为"year",大小为"mass" ax = sns.scatterplot(x="distance", y="orbital_period", hue="year", size="mass", palette=cmap, sizes=(10, 200), data=planets)

【Python】数据可视化之点线图

# 设置绘图风格为白色 sns.set(style="white") # 加载mpg数据集 mpg = sns.load_dataset("mpg") # 绘制散点图,x轴为horsepower,y轴为mpg,颜色根据origin分类,大小根据weight分类 sns.relplot(x="horsepower", y="mpg", hue="origin", size="weight", sizes=(40, 400), alpha=.5, palette="plasma", height=6, data=mpg) 

【Python】数据可视化之点线图

时序图

Lineplot是Seaborn库中用于绘制折线图的函数,它能够帮助用户可视化数据集中不同变量之间的关系,特别是展示随时间变化的数据趋势。Lineplot函数的基本用法是传入x轴和y轴的数据,以及包含这些数据的数据集(DataFrame或类似结构)。通过指定xy参数,Lineplot能够绘制出表示这两个变量之间关系的折线图。

Lineplot函数提供了多个参数来调整折线图的外观和行为:

  • x, y:分别指定折线图中x轴和y轴的数据。
  • data:指定包含x和y数据的数据集,通常是pandas的DataFrame。
  • hue:可选参数,用于根据某一列数据对折线进行分组着色,以区分不同的数据系列。
  • style:可选参数,用于指定折线的风格,如线型、破折号样式等。
  • markers:可选参数,设置为True时会在折线图上显示数据点,便于观察具体的数据值。
  • ci:控制置信区间的显示,如果不需要显示置信区间,可以设置为None。

在使用Lineplot时,需要确保传入的数据格式正确,且x轴和y轴的数据长度必须相同。如果数据中包含缺失值(NaN),Lineplot会自动跳过这些值进行绘图。Lineplot的绘图结果会受到Seaborn和matplotlib的样式设置影响,因此可以通过调整这些库的样式设置来改变折线图的外观。

# 加载fmri数据集 fmri = sns.load_dataset("fmri") # 绘制折线图,x轴为timepoint,y轴为signal,根据region进行颜色区分,根据event进行线条样式区分 sns.lineplot(x="timepoint", y="signal",hue="region", palette="plasma",style="event",data=fmri)

【Python】数据可视化之点线图

# 创建一个随机数生成器,种子为88 rs = np.random.RandomState(88) # 生成365个随机数,每个随机数有4个值 values = rs.randn(365, 4).cumsum(axis=0) # 创建一个日期范围,从2016年1月1日开始,共365天,每天一个日期 dates = pd.date_range("1 1 2016", periods=365, freq="D") # 创建一个DataFrame,包含生成的随机数和日期 data = pd.DataFrame(values, dates, columns=["A", "B", "C", "D"]) # 对DataFrame进行滚动平均,窗口大小为7 data = data.rolling(7).mean() # data为数据集,palette为颜色调色板,linewidth为线宽 sns.lineplot(data=data, palette="inferno", linewidth=3)

【Python】数据可视化之点线图

关系图

relplot是Seaborn库中用于绘制关系图的函数,它是一个高级绘图函数,能够灵活地处理多变量关系,并自动生成具有多个子图的图表。

  • x, y:分别指定图表的x轴和y轴数据。
  • data:包含绘图所需数据的数据集,通常是pandas的DataFrame。
  • hue:用于根据某一列数据对数据进行分组,并在图表中用不同的颜色表示。
  • size:控制数据点的大小或线条的粗细,根据数据集中的某列进行映射。
  • style:控制数据点的样式或线条的样式,如点型、线型等,同样可以根据数据集中的某列进行映射。
  • row, col:用于将数据按照指定的列分割成多个子图,分别绘制在行或列上。
  • palette:指定hue参数分组的颜色映射方案。
  • height:每个子图的高度(单位:英寸)。
  • aspect:子图的宽高比,默认为1。
  • kind:指定绘图的类型,'scatter''line'
# 加载名为"dots"的数据集 dots = sns.load_dataset("dots") # 绘制关系图,x轴为"time",y轴为"firing_rate",根据"coherence"进行颜色区分,根据"choice"进行大小区分,根据"align"进行列区分 # "size_order"指定了大小顺序,"height"指定了图形的高度,"aspect"指定了图形的纵横比,"facet_kws"指定了子图的关键字参数 # "kind"指定了图形的类型为线图,"legend"指定了图例的位置为全图,"data"指定了数据集为"dots" sns.relplot(x="time", y="firing_rate", hue="coherence", size="choice", col="align", size_order=["T1", "T2"],palette="viridis", height=5, aspect=.75, facet_kws=dict(sharex=False), kind="line", legend="full", data=dots) 

【Python】数据可视化之点线图

# 加载名为 "tips" 的数据集 tips = sns.load_dataset("tips") # 绘制关系图,x 轴为 "total_bill",y 轴为 "tip",根据 "smoker" 进行颜色区分,根据 "day" 进行列区分 # "size_order" 指定了大小顺序,"height" 指定了图形的高度,"aspect" 指定了图形的纵横比,"facet_kws" 指定了子图的关键字参数 # "kind" 指定了图形的类型为线图,"legend" 指定了图例的位置为全图,"data" 指定了数据集为 "tips" sns.relplot(x="total_bill", y="tip", hue="smoker", col="day", size_order=["T1", "T2"], palette="inferno", height=5, aspect=.75, facet_kws=dict(sharex=False), kind="line", legend="full", data=tips)

 【Python】数据可视化之点线图

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/154055.html

(0)
上一篇 2025-02-28 15:33
下一篇 2025-02-28 15:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信