✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。
✍ 本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
✍ 订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》如果觉得文章不错或能帮助到你学习,可以点赞收藏评论+关注哦!
如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!
散点图是一种常用的数据可视化方式,用于展示两个变量之间的关系。在Matplotlib中,可以使用scatter()函数来绘制散点图。
scatter()函数的基本语法如下:
plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None,
vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数说明:
x:表示散点图中各个点的横坐标,可以是一个数组或者列表。
y:表示散点图中各个点的纵坐标,可以是一个数组或者列表。
s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。
marker:点的样式,默认小圆圈 ‘o’。
cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。
vmin,vmax::亮度设置,在 norm 参数存在时会忽略。
alpha::透明度设置,0-1 之间,默认 None,即不透明。
linewidths::标记点的长度。
edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。
plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
**kwargs::其他参数。
以下散点图演示了如何使用 Matplotlib 创建一个基本的散点图:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
x = np.random.rand(50)
y = np.random.rand(50)
# 绘制散点图
plt.scatter(x, y)
# 设置标题和坐标轴标签
plt.title('Simple Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图形
plt.show()
使用随机数生成了50个横坐标 x 和纵坐标 y。然后,使用 scatter() 函数绘制了散点图,其中 x 和 y 分别表示散点图中各个点的横坐标和纵坐标。
我们还设置了标题和坐标轴标签,分别使用 title() 和 xlabel()、ylabel() 函数。
最后,通过 show() 函数显示图形。
设置散点图的大小,可以使用scatter()函数的s参数来指定点的大小。该参数可以接受一个标量值或一个数组,用于指定每个点的大小。
以下是设置散点图大小的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
x = np.random.rand(50)
y = np.random.rand(50)
sizes = np.random.randint(10, 100, 50)
# 设置散点图大小
plt.scatter(x, y, s=sizes)
# 设置标题和坐标轴标签
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图形
plt.show()
使用sizes数组来指定每个点的大小。sizes数组的长度与数据点的个数相同,对应每个数据点的大小。
自定义散点图中点的颜色,可以使用scatter()函数的c参数来指定颜色。该参数可以接受一个标量值或一个数组,用于指定每个点的颜色。
以下是自定义散点图点的颜色的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
# 自定义散点图颜色
plt.scatter(x, y, c=colors)
# 设置标题和坐标轴标签
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图形
plt.show()
使用colors数组来指定每个点的颜色。colors数组的长度与数据点的个数相同,对应每个数据点的颜色。
可以使用不同的方式来指定颜色,例如:
plt.scatter(x, y, c='red')
要设置两组散点图,可以使用两次scatter()函数来绘制不同的数据点,并可以分别指定它们的颜色、大小等属性。
以下是设置两组散点图的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
x1 = np.random.rand(50)
y1 = np.random.rand(50)
x2 = np.random.rand(50)
y2 = np.random.rand(50)
# 设置散点图1的属性
plt.scatter(x1, y1, c='red', label='Group 1', alpha=0.5)
# 设置散点图2的属性
plt.scatter(x2, y2, c='blue', label='Group 2', alpha=0.5)
# 设置标题和坐标轴标签
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图例
plt.legend()
# 显示图形
plt.show()
在上面的代码中,我们生成了两组随机的横坐标和纵坐标数据,分别用x1、y1和x2、y2表示。然后使用两次scatter()函数分别绘制了两组散点图。第一组使用红色(c=‘red’)表示,第二组使用蓝色(c=‘blue’)表示。我们还通过label参数为每组散点图指定了标签,以便在图例中显示。通过设置alpha参数来调整散点的透明度,增强可视效果。
最后,我们设置了标题和坐标轴标签,并通过legend()函数显示图例,以区分两组散点图。
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
sizes = np.random.randint(10, 100, 100)
# 绘制散点图
plt.scatter(x, y, c=colors, s=sizes, alpha=0.7)
# 设置标题和坐标轴标签
plt.title('Scatter Plot with Random Data')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图形
plt.show()
我们使用随机数生成了100个横坐标 x 和纵坐标 y,以及每个点的颜色 colors 和大小 sizes。其中,colors 是一个由随机数生成的数组,用于指定每个点的颜色,而 sizes 是一个由随机数生成的整数数组,用于指定每个点的大小。
然后,我们使用 scatter() 函数绘制散点图,其中 c 参数用于指定颜色,s 参数用于指定大小。通过设置 alpha 参数,可以调整点的透明度。
如果要显示颜色条,需要使用 plt.colorbar() 方法:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
sizes = np.random.randint(10, 100, 100)
# 绘制散点图
plt.scatter(x, y, c=colors, s=sizes, alpha=0.7)
# 设置标题和坐标轴标签
plt.title('Scatter Plot with Random Data')
plt.xlabel('X')
plt.ylabel('Y')
# 显示颜色条
plt.colorbar()
# 显示图形
plt.show()
换个颜色条参数, 设置为 cmap=‘plasma’:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
sizes = np.random.randint(10, 100, 100)
# 绘制散点图
plt.scatter(x, y, c=colors,cmap='plasma', s=sizes, alpha=0.7)
# 设置标题和坐标轴标签
plt.title('Scatter Plot with Random Data')
plt.xlabel('X')
plt.ylabel('Y')
# 显示颜色条
plt.colorbar()
# 显示图形
plt.show()
除了’plasma’颜色条之外,Matplotlib还提供了许多其他的内置颜色条供选择。以下是一些常用的内置颜色条:
‘viridis’ | ‘afmhot_r’ |
‘inferno’ | ‘magma’ |
‘jet’ | ‘hot’ |
‘cool’ | ‘spring’ |
‘summer’ | ‘autumn’ |
‘winter’ | ‘gray’ |
‘bone’ | ‘copper’ |
‘pink’ | ‘YlOrRd’ |
‘BuPu’ | ‘GnBu’ |
‘OrRd’ |
你可以在Matplotlib的官方文档中查看完整的颜色条列表:https://matplotlib.org/stable/tutorials/colors/colormaps.html
文章下方有交流学习区!一起学习进步!
首发CSDN博客,创作不易,如果觉得文章不错,可以点赞收藏评论
你的支持和鼓励是我创作的动力❗❗❗