Matplotlib 绘制多个散点图

Matplotlib 绘制多个散点图

Python的可视化库Matplotlib可以帮助我们快速绘制各种类型的图表,在数据分析和数据展示中常常被使用。通过本篇文章,我们将学习如何使用Matplotlib绘制多个散点图,实现有效的数据展示。

阅读更多:Matplotlib 教程

获得数据

在我们绘制多个散点图之前,我们需要先获得相应的数据。本文章所使用的数据集来自于UCI机器学习库中的Wine数据集,该数据集包含了三种葡萄酒的化学成分测试数据。

我们使用Python中的pandas库来读取csv文件并转为Dataframe格式。可以通过以下代码来读取数据:

import pandas as pd

wine_data = pd.read_csv('wine.csv')

数据集一共包含178行,每行记录了三种葡萄酒的化学成分测试数据,除了最后一行记录葡萄酒的类别以外,其他数据都是数值型数据。

绘制单个散点图

在我们绘制多个散点图之前,我们需要先掌握如何绘制单个散点图。Matplotlib库中提供了scatter()函数来帮助我们绘制散点图,我们可以在函数中传入x坐标和y坐标,并设置相关参数进行自定义。

以下代码示例绘制了酒精含量和颜色深度之间的散点图,其中通过设置s参数来调整散点的大小,通过c参数来设置散点的颜色,同时还添加了坐标轴标签和标题。

import matplotlib.pyplot as plt

plt.scatter(wine_data['Alcohol'], wine_data['Color intensity'], s=30, c='blue')
plt.xlabel('Alcohol')
plt.ylabel('Color intensity')
plt.title('Alcohol vs. Color intensity')
plt.show()

绘制多个散点图

当我们需要同时展示多组数据的时候,我们需要绘制多个散点图。这时候我们可以使用Matplotlib库提供的subplot()函数,将画布分成多个部分,分别在每个部分中绘制相应的散点图。

以下代码示例将画布分成1行2列,并在第一个位置绘制Alcohol和Color intensity之间的散点图,在第二个位置绘制OD280/OD315 of diluted wines和Proline之间的散点图,并自定义各个散点图的坐标轴标签和标题。

plt.subplot(1, 2, 1)
plt.scatter(wine_data['Alcohol'], wine_data['Color intensity'], s=30, c='blue')
plt.xlabel('Alcohol')
plt.ylabel('Color intensity')
plt.title('Alcohol vs. Color intensity')

plt.subplot(1, 2, 2)
plt.scatter(wine_data['OD280/OD315 of diluted wines'], wine_data['Proline'], s=30, c='red')
plt.xlabel('OD280/OD315 of diluted wines')
plt.ylabel('Proline')
plt.title('OD280/OD315 of diluted wines vs. Proline')

plt.show()

自定义散点图样式

除了设置坐标轴标签和标题之外,我们还可以通过自定义散点图的样式来使数据更加清晰易懂。在Matplotlib库中,我们可以通过设置marker实现不同的散点样式,通过设置alpha参数实现透明度的控制,还可以通过设置edgecolors参数实现边缘颜色的控制。

以下代码示例将第一个散点图中的散点大小修改为60,样式修改为红色diamond,同时将边缘颜色修改为黑色,透明度设置为0.5。

plt.subplot(1, 2, 1)
plt.scatter(wine_data['Alcohol'], wine_data['Color intensity'], s=60, marker='D', c='red', edgecolors='black', alpha=0.5)
plt.xlabel('Alcohol')
plt.ylabel('Color intensity')
plt.title('Alcohol vs. Color intensity')

plt.subplot(1, 2, 2)
plt.scatter(wine_data['OD280/OD315 of diluted wines'], wine_data['Proline'], s=30, c='red')
plt.xlabel('OD280/OD315 of diluted wines')
plt.ylabel('Proline')
plt.title('OD280/OD315 of diluted wines vs. Proline')

plt.show()

总结

通过本篇文章,我们学习了如何使用Matplotlib库绘制多个散点图。我们掌握了如何获取数据,并对单个散点图和多个散点图的绘制进行了详细的讲解,还学习了如何自定义散点图的样式,提高了数据展示的效果。当我们在数据分析和数据展示中需要同时展示多组数据时,使用Matplotlib库中的subplot()函数来绘制多个散点图是一个非常有效的方式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程