目录
1. 前言
2. 绘制折线图
2.1 修改标签文字和线条粗细
2.2 校正图形
2.3 使用内置样式
2.4 自动计算数据
3. 绘制散点图
3.1 绘制单个点
3.2 绘制一系列点
3.3 自定义颜色
3.4 颜色渐变
4. 总结
1. 前言
数据可视化指的是通过 可视化表示来 探索数据,通过 使用代码 来探索数据集的 规律 和 关联。漂亮的呈现数据并非仅仅关乎漂亮的图片,通过以引人注目的简单方式呈现数据,能让观看者明白其中的含义:发现数据集中原本未知的规律和意义。
2. 绘制折线图
绘制平方数列 1、4、9、16、25 的折线图。
# 导入 pyplot 模块,并指定别 plt,以免反复输入 matplotlib.pyplot
import matplotlib.pyplot as plt
squares = [1,4,9,16,25]
(fig,ax) = plt.subplots()
ax.plot(squares)
plt.show()
代码中使用的函数和方法解释说明:
- subplots () 函数:在一张图片上绘制一个或者多个图表
- show () 函数:打开 Matplotlib 查看器,并显示绘制的图表
- plot () 方法:它尝试根据给定的数据以有意义的方式绘制图表
- fig 变量:表示整张图片
- ax 变量:表示图片中的各个图表
2.1 修改标签文字和线条粗细
可视化的各个方面。下面通过一些定制来改善这个图表的可读性。
# 导入pyplot模块,并指定别plt,以免反复输入pyplot
import matplotlib.pyplot as plt
squares = [1,4,9,16,25]
(fig,ax) = plt.subplots()
ax.plot(squares,linewidth = 3)
# 设置图表标题,并给坐标轴加上标签
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('value',fontsize = 14)
ax.set_ylabel('squares_of_value',fontsize = 14)
# 设置刻度标记的大小
ax.tick_params(axis = 'both',labelsize = 14)
plt.show()
代码中使用的函数和方法解释说明:
- 参数:linewidth :决定了 plot () 绘制的线条粗细。
- 参数:fontsize :指定图表中各种文字的大小
- 方法:set_title() :给图表指定标题
- 方法:set_xlabel () :设置横轴标题
- 方法:set_ylabel () :设置纵轴标题
- 方法:tick_params () :设置刻度的样式
2.2 校正图形
图形更容易看清楚后,我们发现没有正确的绘制数据:折线图的终点指出 4.0 的平方为 25.0!下面来修复这个问题。
第一个数据点对应的 x 坐标值为 0 ,但这里的数据集,第一个点对应的 x 值为 1。所以,为了改变这种默认的行为,可向 plot () 同时提供输入值和输出值。
可使用如下代码进行设置:
# 设置x轴的坐标
input_values = [1,2,3,4,5]
# 导入pyplot模块,并指定别plt,以免反复输入pyplot
import matplotlib.pyplot as plt
# 存储平方数
squares = [1,4,9,16,25]
# 设置x轴的坐标
input_values = [1,2,3,4,5]
(fig,ax) = plt.subplots()
ax.plot(input_values,squares,linewidth = 3)
# 设置图表标题,并给坐标轴加上标签
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('value',fontsize = 14)
ax.set_ylabel('squares_of_value',fontsize = 14)
# 设置刻度标记的大小
ax.tick_params(axis = 'both',labelsize = 14)
plt.show()
注:使用 plot () 时,可指定各种实参,还可以使用众多的函数对图形进行绘制。
2.3 使用内置样式
背景色、网格线、线条粗细、字体、字号 等设置,让我们无须做太多定制,就可以生成引入注目的可视化效果。简而言之,内置样式就是 对生成的图片进行排版;就像 word 中,对文字排版的那样。
要获悉在你的系统中可使用的那些设置,可在终端会话中执行如下命令:
要使用这些样式,可在 生成图表的代码前添加如下代码行:
plt.style.use('seaborn')
# 导入pyplot模块,并指定别plt,以免反复输入pyplot
import matplotlib.pyplot as plt
# 存储平方数
squares = [1,4,9,16,25]
# 设置x轴的坐标
input_values = [1,2,3,4,5]
# 使用内置样式
plt.style.use('seaborn')
(fig,ax) = plt.subplots()
ax.plot(input_values,squares,linewidth = 3)
# 设置图表标题,并给坐标轴加上标签
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('value',fontsize = 14)
ax.set_ylabel('squares_of_value',fontsize = 14)
# 设置刻度标记的大小
ax.tick_params(axis = 'both',labelsize = 14)
plt.show()
- 可供使用的内置样式有很多,我们可以尝试使用他们,找出我们最喜欢的样式。
2.4 自动计算数据
手工计算 列表要包含的值可能效率低下,需要绘制的点很多时尤其如此。我们不必手工计算包含点坐标的列表,可以用 Python 循环
下面是绘制 1000 个点的代码:
import matplotlib.pyplot as plt
x_values = range(1,1001)
y_values = [x**2 for x in x_values]
plt.style.use('seaborn')
(fig,ax) = plt.subplots()
ax.scatter(x_values,y_values,s = 10)
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('values',fontsize = 14)
ax.set_ylabel('squares_of_values',fontsize = 14)
#设定每个坐标轴的取值范围
ax.axis([0,1100,0,1100000])
plt.show()
- 首先是创建了一个包含 x 值的列表,其中包含 1~1000 。接下来,是一个生成 y 值的 列表解析,它遍历 x 的值 (for x in x_values) ,计算其平方值(x**2),并将结果存储到列表 y_values 中。然后,将 输入列表 和 输出列表
3. 绘制散点图
要绘制 散点图,可使用 方法 scatter ()。
3.1 绘制单个点
- 向它传递一对 x 坐标 和 y 坐标,它将在指定位置绘制一个点。
# 绘制单个散点
ax.scatter(2,4,s = 200)
- 参数 s :点的尺寸
import matplotlib.pyplot as plt
# 设置网格状风格
plt.style.use('seaborn')
# 绘制图表
(fig,ax) = plt.subplots()
# 绘制单个散点
ax.scatter(2,4,s = 200)
# 设置图表标题并给坐标轴加上标签
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('values',fontsize = 14)
ax.set_ylabel('squares_of_values',fontsize = 14)
# 设置刻度标记的大小
ax.tick_params(axis = 'both',which = 'major',labelsize = 14)
# 显示绘制的图表
plt.show()
3.2 绘制一系列点
- 要绘制一系列的点,可向 scatter () 方法传递两个分别包含 x 值和 y 值的列表
import matplotlib.pyplot as plt
x_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]
# 设置网格状风格
plt.style.use('seaborn')
# 绘制图表
(fig,ax) = plt.subplots()
ax.scatter(x_values,y_values,s = 100)
plt.show()
3.3 自定义颜色
传递参数 c
ax.scatter(x_values,y_values,s = 100,c = 'red')
import matplotlib.pyplot as plt
x_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]
# 设置网格状风格
plt.style.use('seaborn')
# 绘制图表
(fig,ax) = plt.subplots()
ax.scatter(x_values,y_values,s = 100,c = 'red')
plt.show()
RGB 颜色模式 自定义颜色。要指定自定义颜色,可传递参数 c ,并将其设置为一个元组,其中包含三个 0~1 的小数值,分别表示 红色、绿色、蓝色
例如,下面的代码行创建一个由淡绿色组成的散点图:
ax.scatter(x_values,y_values,s = 100,c = (0,0.8,0))
import matplotlib.pyplot as plt
x_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]
# 设置网格状风格
plt.style.use('seaborn')
# 绘制图表
(fig,ax) = plt.subplots()
ax.scatter(x_values,y_values,s = 100,c = (0,0.8,0))
plt.show()
- 值越接近 0,指定的颜色越深;值越接近 1 ,指定的颜色越浅
3.4 颜色渐变
渐变 到结束颜色。在可视化中,颜色渐变用于 突出数据的规律。
例如,你可能用较浅的颜色来显示较小的数值,并用较深的颜色来显示较大的数值
每个点的颜色,下面演示了如何根据每个点的 y 值
ax.scatter(x_values,y_values,s = 50,c = y_values,cmap = plt.cm.Blues)
import matplotlib.pyplot as plt
x_values = range(1,1001)
y_values = [values**2 for values in range(1,1001)
# 设置网格状风格
plt.style.use('seaborn')
# 绘制图表
(fig,ax) = plt.subplots()
ax.scatter(x_values,y_values,s = 5,c = y_values,cmap = plt.cm.Blues)
plt.show()
- 参数 c 设置成了一个 y 值列表,并使用 参数 cmap 告诉 Python 使用 哪个颜色渐变。这些代码将 y 值较小的点显示为浅蓝色,并将 y 值较大的点显示为深蓝色。
4. 总结
这篇文章主要实现了数据折线图和散点图的可视化方法,以及其内置样式的设置。今天的分享总结就到这里了,如果有疑问的小伙伴我们评论区交流嗷~,笔者必回,我们下期再见啦 !!