介绍
Python非常适合处理数据。通常,数据集将包括多个变量和许多实例,使得很难了解发生了什么。数据可视化是一种有用的方法,可帮助您识别数据中的模式。 例如,假设你是一个房地产代理,你试图了解房子的年龄和它的售价之间的关系。如果你的数据包括5块房子的1块,它不会太难以了解正在发生什么。但是,假设你想使用整个500个房子的城镇的数据。然后,很难理解年龄如何影响价格。通过绘制销售价格与年龄的关系来可视化数据,肯定能够揭示两者之间存在的关系。 可视化是一种以通用方式传达概念的快速而简单的方法,尤其是那些不熟悉您的数据的人。每当我们使用数据时,可视化通常是分析的必要部分。 我们将使用2D绘图库 matplotlib ,它最初是由约翰·D亨特撰写,并从那时起成为一个非常活跃的开源开发社区项目。它允许您生成高质量的线图,散点图,直方图,条形图和更多。每个图以不同的方式呈现数据,在确定数据的最有信息的图之前尝试不同类型的图通常是有用的。记住,可视化是艺术和科学的融合是很好的。 鉴于可视化的重要性,本教程将介绍如何使用matplotlib在Python中绘制数据。我们将使用一小组数据来生成散点图,向标绘添加标题和图例等信息,并通过更改绘图点的外观来自定义绘图。 完成本教程后,您将能够在Python中绘制数据!先决条件
对于本教程,您应该安装Python 3,以及在计算机上设置本地编程环境。如果不是这种情况,你可以按照得到建立 相应的安装和设置指南操作系统 。第1步 - 导入matplotlib
在我们开始使用Python之前,让我们仔细检查matplotlib模块是否安装。在命令行中,通过运行以下命令检查matplotlib:python -c "import matplotlib"
如果安装了matplotlib,这个命令将完成,没有错误,我们准备好了。如果没有,您将收到一条错误消息:
OutputTraceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'
如果您收到错误消息,请使用pip下载库:
pip install matplotlib
现在matplotlib已经安装,我们可以在Python中导入它。首先,让我们创建,我们将在本教程中工作的脚本:
scatter.py
。然后,在我们的脚本中,我们导入matplotlib。因为我们只使用绘图模块(pyplot),我们指定当我们导入它。
scatter.py
import matplotlib.pyplot as plt
我们指定我们希望通过追加导入模块
.pyplot
在2002年底
matplotlib
。 为了更容易地指的是我们的脚本模块,我们简称它作为
plt
。现在,我们可以继续创建和绘制我们的数据。
第2步 - 创建数据点以绘图
在我们的Python脚本中,让我们创建一些数据。我们在2D中工作,所以我们将需要我们每个数据点的X和Y坐标。 为了更好地了解matplotlib的工作原理,我们将我们的数据与可能的现实生活场景相关联。让我们假设我们是咖啡店的主人,我们对整年的平均天气和冰咖啡的总购买数量之间的关系感兴趣。我们的X变量将是每月出售的冰咖啡的总数,我们的Y变量将是每个月的平均温度在华氏。 在我们的Python脚本,我们将创建两个列表变量:X
(总冰咖啡销售)和
Y
(平均温度)。我们各自列表中的每个项目将表示每个月(1月至12月)的数据。例如,1月份的平均气温为32华氏度,咖啡店售出590杯冰咖啡。
scatter.py
import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]
现在我们有了我们的数据,我们可以开始绘图。
第3步 - 绘制数据
散点图很适用于确定两个变量之间的关系,因此我们将使用此图类型作为示例。要使用matplotlib创建散点图,我们将使用scatter()
函数。该函数需要两个参数,它们表示X和Y坐标值。
scatter.py
import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]
plt.scatter(X,Y)
plt.show()
每当我们创建了一个情节,我们还必须指定我们想要的阴谋通过显示
plt.show()
在继续之前,让我们检查我们的脚本是否正常工作。保存脚本并通过命令行运行它:
python scatter.py
如果一切顺利,一个窗口应该已经启动显示情节,像这样:
此窗口非常适合查看数据;它是互动的,包括几个功能,如悬停以显示标签和坐标,放大或缩小,并保存。
第4步 - 添加标题和标签
现在我们知道我们的脚本工作正常,我们可以开始添加信息到我们的情节。为了说明我们的数据代表什么,让我们为每个轴包括一个标题和标签。 我们将开始添加标题。我们在之前添加标题plt.show()
在我们的脚本行。
scatter.py
import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]
plt.scatter(X,Y)
plt.title('Relationship Between Temperature and Iced Coffee Sales')
plt.show()
接下来,轴右侧的下方添加标签
plt.title
行:
scatter.py
...
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')
...
如果我们保存我们的脚本并再次运行,我们现在应该有一个更新的情节,更多的信息。我们更新的图应该看起来像这样:
第5步 - 自定义绘图
我们合作的每个数据集都将是独一无二的,能够自定义我们想要显示我们的信息很重要。记住可视化也是一门艺术,所以得到创意与它! matplotlib包括许多定制功能,如不同的颜色,点符号和大小。根据我们的需要,我们可能想使用不同的尺度,使用不同的范围为我们的轴。我们可以通过指定轴的新范围来更改默认参数,如下所示:
scatter.py
import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]
plt.scatter(X,Y)
plt.xlim(0,1000)
plt.ylim(0,100)
plt.title('Relationship Between Temperature and Iced Coffee Sales')
plt.show()
...
从原始的情节点看起来有点小,蓝色可能不是我们想要的颜色。也许我们想要三角形而不是圆圈的点。如果我们想改变实际颜色/尺寸/分的形状,我们要在最初的这些变化
plt.scatter()
调用。我们将更改以下参数:
s
:点的大小,默认值= 20c
:颜色,顺序,或颜色,默认='B'序列marker
:点符号,默认='O'
s=60
),颜色变为红色(
c='r'
符号变成一个三角形(
marker='^'
我们将修改
plt.scatter()
函数:
plt.scatter(X, Y, s=60, c='red', marker='^')
在运行我们更新的脚本之前,我们可以仔细检查我们的代码是否正确。自定义图的更新脚本应如下所示:
scatter.py
import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]
#scatter plot
plt.scatter(X, Y, s=60, c='red', marker='^')
#change axes ranges
plt.xlim(0,1000)
plt.ylim(0,100)
#add title
plt.title('Relationship Between Temperature and Iced Coffee Sales')
#add x and y labels
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')
#show plot
plt.show()
在继续执行第6步之前,请不要忘记保存脚本。
第6步 - 保存绘图
现在我们已经完成了我们的代码,让我们运行它,看看我们新的自定义的情节。python scatter.py
现在应该打开一个窗口,显示我们的图:
接下来,通过单击保存按钮保存绘图,这是位于底部工具栏上的磁盘图标。请注意,图片将保存为PNG而不是交互式图表。你现在有了你自己的定制散点图,恭喜你!