介绍
Python 非常适合处理数据. 通常数据集会包含多个变量和许多实例,这使得很难了解正在发生的事情。
例如,假设你是一个房地产经纪人,你正在尝试了解一个房屋的年龄和销售价格之间的关系. 如果你的数据包括5个房屋的1块,那么对正在发生的事情没有太大的感觉。然而,假设你想使用500个房屋的整个城市的数据。
可视化是通用方式传达概念的快速和简单方法,特别是对于那些不熟悉您的数据的人,当我们使用数据时,可视化往往是分析的必要部分。
我们将使用2D插图库,matplotlib(http://matplotlib.org/),它最初是由John D. Hunter撰写的,自那时起已成为一个非常活跃的开源开发社区项目。它允许您生成高质量的线程插图,散布插图,历史图,条图,等等。每个插图以不同的方式呈现数据,并且在为您的数据定位最具信息性的插图之前,经常有用尝试不同类型的插图。
鉴于可视化的重要性,本教程将描述如何使用matplotlib在Python中绘制数据,我们将通过使用小数据集生成散布式绘画,将标题和传说等信息添加到绘画中,并通过改变绘画点的外观来定制绘画。
当您完成本教程时,您将能够在Python中绘制数据!
前提条件
对于本教程,你应该有Python 3安装,以及在你的计算机上设置的本地编程环境. 如果不是这样,你可以通过遵循 适当的安装和设置指南为你的操作系统来设置。
步骤 1 – 导入 matplotlib
在我们开始在Python工作之前,让我们双重检查是否安装了matplotlib模块,在命令行中,通过运行以下命令来检查matplotlib:
1python -c "import matplotlib"
如果 matplotlib 已安装,此命令将没有错误完成,我们已经做好准备了,否则您将收到一个错误消息:
1[secondary_label Output]
2Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'
如果您收到错误消息,请使用Pip下载库:
1pip install matplotlib
现在 matplotlib 已安装,我们可以 导入它在Python. 首先,让我们创建我们将在本教程中使用的脚本: scatter.py
. 然后,在我们的脚本中,让我们导入matplotlib. 因为我们将只与插图模块(pyplot)一起工作,让我们在导入时指定这一点。
1[label scatter.py]
2import matplotlib.pyplot as plt
我们通过在matplotlib
的末尾附加.pyplot
来指定我们想要导入的模块,为了在我们的脚本中更容易参考该模块,我们将其缩写为plt
。
步骤 2 — 创建数据点到插图
在我们的Python脚本中,让我们创建一些数据来工作,我们在2D中工作,所以我们需要X和Y对每个数据点的坐标。
为了更好地了解matplotlib是如何工作的,我们将我们的数据与可能的现实生活场景相关联。让我们假装我们是咖啡店的所有者,我们对全年平均天气和冰咖啡购买总数之间的关系感兴趣。
在我们的Python脚本中,我们将创建两个列表变量:‘X’(销售的冰咖啡总量)和‘Y’(平均温度)。
1[label scatter.py]
2import matplotlib.pyplot as plt
3
4X = [590,540,740,130,810,300,320,230,470,620,770,250]
5Y = [32,36,39,52,61,72,77,75,68,57,48,48]
现在我们有数据,我们可以开始策划。
步骤3 - 编写数据
Scatter 插图非常适合确定两个变量之间的关系,所以我们将使用这个图形类型为我们的示例。 使用 matplotlib 创建散图,我们将使用 scatter()
函数. 该函数需要两个参数,代表 X 和 Y 坐标值。
1[label scatter.py]
2import matplotlib.pyplot as plt
3
4X = [590,540,740,130,810,300,320,230,470,620,770,250]
5Y = [32,36,39,52,61,72,77,75,68,57,48,48]
6
7plt.scatter(X,Y)
8plt.show()
每当我们创建一个场景时,我们也必须通过使用plt.show()来指定我们希望该场景显示。
在继续之前,让我们检查我们的脚本是否正在工作. 保存脚本并通过命令行运行它:
1python scatter.py
如果一切顺利,一个窗口应该启动,显示阴谋,如下:
此窗口非常适合查看数据;它是交互式的,包括几个功能,例如浮动显示标签和坐标,缩放或放大,并保存。
步骤 4 – 添加标题和标签
现在我们知道我们的脚本正常工作了,我们可以开始将信息添加到我们的情节. 为了澄清我们的数据代表了什么,让我们为每个轴列一个标题以及标签。
我们在我们的脚本中添加plt.show()
行前的标题。
1[label scatter.py]
2import matplotlib.pyplot as plt
3
4X = [590,540,740,130,810,300,320,230,470,620,770,250]
5Y = [32,36,39,52,61,72,77,75,68,57,48,48]
6
7plt.scatter(X,Y)
8
9plt.title('Relationship Between Temperature and Iced Coffee Sales')
10
11plt.show()
接下来,添加plt.title
行下面轴的标签:
1[label scatter.py]
2...
3plt.xlabel('Cups of Iced Coffee Sold')
4plt.ylabel('Temperature in Fahrenheit')
5...
如果我们保存我们的脚本并重新运行它,我们现在应该有一个更具信息性的更新的阴谋。
步骤5 - 定制一个阴谋
我们所使用的每个数据集都将是独一无二的,重要的是能够定制我们想要显示信息的方式。 记住可视化也是一种艺术,所以用它来创造性! matplotlib 包含许多定制功能,如不同的颜色,点符号和尺寸。 根据我们的需求,我们可能希望使用不同的尺寸来玩,使用不同的范围为我们的轴。
1[label scatter.py]
2import matplotlib.pyplot as plt
3
4X = [590,540,740,130,810,300,320,230,470,620,770,250]
5Y = [32,36,39,52,61,72,77,75,68,57,48,48]
6
7plt.scatter(X,Y)
8
9plt.xlim(0,1000)
10plt.ylim(0,100)
11
12plt.title('Relationship Between Temperature and Iced Coffee Sales')
13
14plt.show()
15...
从原始的场景看点看起来有点小,蓝色可能不是我们想要的颜色. 也许我们想要三角形而不是圆形为我们的点. 如果我们想改变实际的颜色 / 尺寸 / 形状的点,我们必须在最初的plt.scatter()
调用这些变化。
s
:点大小,默认 = 20c
:颜色,序列,或颜色序列,默认 = 'b'标记
:点符号,默认 = 'o'
可能的标记包括一些不同的形状,如钻石,六角形,星星等。颜色选择包括,但不限于蓝色,绿色,红色和。
为了使我们的场景更容易阅读,让我们将点的尺寸(s=60
)三倍,将颜色改变为红色(c='r
),并将符号更改为三角形(marker='^
)。
1plt.scatter(X, Y, s=60, c='red', marker='^')
在运行我们的更新脚本之前,我们可以双重检查我们的代码是否正确。
1[label scatter.py]
2import matplotlib.pyplot as plt
3
4X = [590,540,740,130,810,300,320,230,470,620,770,250]
5Y = [32,36,39,52,61,72,77,75,68,57,48,48]
6
7#scatter plot
8plt.scatter(X, Y, s=60, c='red', marker='^')
9
10#change axes ranges
11plt.xlim(0,1000)
12plt.ylim(0,100)
13
14#add title
15plt.title('Relationship Between Temperature and Iced Coffee Sales')
16
17#add x and y labels
18plt.xlabel('Cups of Iced Coffee Sold')
19plt.ylabel('Temperature in Fahrenheit')
20
21#show plot
22plt.show()
不要忘了保存你的脚本,然后继续到步骤6。
步骤6 - 保存一个阴谋
现在我们已经完成了我们的代码,让我们运行它,看看我们的新自定义阴谋。
1python scatter.py
现在应该打开一个窗口显示我们的场景:
接下来,通过点击保存按钮来保存插图,这是位于底部工具栏上的磁盘图标。请记住,图像将被保存为PNG而不是交互式图表。
结论
在本教程中,您了解了如何使用Python中的matplotlib编写数据,现在您可以可视化数据并定制插图。
要继续练习 matplotlib,您可以按照我们的指南在[如何使用Python 3]使用matplotlib图形字频率(https://andsky.com/tech/tutorials/how-to-graph-word-frequency-using-matplotlib-with-python-3)
。