数据可视化 - 绘制图表

目录

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   修改标签文字和线条粗细 

        如果标签的文字太小、线条太细,难以看清,就很糟糕。所幸的是 Matplotlib 让你能够调整 可视化的各个方面。下面通过一些定制来改善这个图表的可读性。

# 导入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!下面来修复这个问题。

        向 plot () 提供一系列数时,它默认 第一个数据点 对应的 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   使用内置样式 

        Matplotlib 提供了很多已经定义好的样式,例如 背景色网格线线条粗细字体字号 等设置,让我们无须做太多定制,就可以生成引入注目的可视化效果。简而言之,内置样式就是 对生成的图片进行排版;就像 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 中。然后,将 输入列表输出列表 传递给 scatter () 。

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   自定义颜色 

        要修改数据点的颜色,可向 scatter () 传递参数 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   颜色渐变

        颜色渐变从起始颜色 渐变 到结束颜色。在可视化中,颜色渐变用于 突出数据的规律

例如,你可能用较浅的颜色来显示较小的数值,并用较深的颜色来显示较大的数值

        要使用颜色渐变,需要告诉 pyplot 该如何设置数据集中的 每个点的颜色,下面演示了如何根据每个点的 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.  总结

        这篇文章主要实现了数据折线图和散点图的可视化方法,以及其内置样式的设置。今天的分享总结就到这里了,如果有疑问的小伙伴我们评论区交流嗷~,笔者必回,我们下期再见啦 !!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aperion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值