当前位置: 首页 > article >正文

Python 数据可视化(一)熟悉Matplotlib

目录

一、安装包

二、先画个折线图

1、修改标签文字和线条粗细

2、内置样式

3、scatter() 绘制散点图

4、scatter() 绘制多个点

5、设置样式

6、保存绘图


数据可视化指的是通过可视化表示来探索和呈现数据集内的规律。

一、安装包

win + R   打开终端

安装 Matplotlib,在终端提示符下执行命令:

python -m pip install --user matplotlib

## python -m pip:这个部分表示使用 Python 解释器来运行 pip 模块

## --user:这个选项表示将包安装到当前用户的目录中,而不是全局环境

## matplotlib:这是安装的具体包的名

结果如下:

二、先画个折线图

import matplotlib.pyplot as plt

nums = [1, 2, 4, 8, 16, 32, 64]
# nums = [1, 4, 9, 16, 25, 36]
fig, ax = plt.subplots()
ax.plot(nums)
plt.show()

# fig, ax = plt.subplots() 创建了一个图形对象 fig 和一个坐标轴对象 ax

# ax.plot(nums) 使用 plot 方法绘制 nums 中的数据

变量 fig 表示由生成的一系列绘图构成的整个图形,变量 ax 表示图形中的绘图。

1、修改标签文字和线条粗细

import matplotlib.pyplot as plt

nums = [1, 2, 4, 8, 16, 32, 64]
# nums = [1, 4, 9, 16, 25, 36]
fig, ax = plt.subplots()
ax.plot(nums, linewidth=3)

ax.set_title("2**n", fontsize=24)
ax.set_xlabel("Value_2", fontsize=14)
ax.set_ylabel("2**n", fontsize=14)

# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()

结果显示:

        参数 linewidth 决定了 plot() 绘制的线条的粗细;set_title() 方法给绘图指定标题;fontsize 用于指定图中各种文字的大小;tick_params() 方法设置刻度标记的样式。

当你运行如下代码时:

import matplotlib.pyplot as plt

# nums = [1, 2, 4, 8, 16, 32, 64]
# input_value = [0, 1, 2, 3, 4, 5, 6]

nums = [1, 4, 9, 16, 25, 36]
input_value = [1, 2, 3, 4, 5, 6]
fig, ax = plt.subplots()
# ax.plot(input_value, nums, linewidth=3)
ax.plot(nums, linewidth=3)

ax.set_title("n**2", fontsize=24)
ax.set_xlabel("Value_n", fontsize=14)
ax.set_ylabel("n**2", fontsize=14)

# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()

        结果输出:

        

        注意:如果看的仔细的话,上边的图是不是不太对,5的平方怎么到36了。

现在我们改动一行代码:

ax.plot(input_value, nums, linewidth=3)

输出结果:

        在向 plot() 提供一个数值序列时,它假设第一个数据点对应的 x 坐标值为 0,但这里的第一个点对应的 x 坐标值应该为 1。因此将输入的数据也提供给 plot() 函数

2、内置样式

Matplotlib 有很多定义好的内置样式,如果想知道有哪些能用的,可以直接打印出来查看:

print(plt.style.available)

# plt 是别名
import matplotlib.pyplot as plt

nums = [1, 2, 4, 8, 16, 32, 64]
input_value = [0, 1, 2, 3, 4, 5, 6]

plt.style.use('classic')
fig, ax = plt.subplots()
ax.plot(input_value, nums, linewidth=3)

ax.set_title("2**n", fontsize=24)
ax.set_xlabel("Value_2", fontsize=14)
ax.set_ylabel("2**n", fontsize=14)

# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

3、scatter() 绘制散点图

绘制单个点,可使用 scatter() 方法,并向它传递该点的 x 坐标值和 y 坐标值:

import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
fig, ax = plt.subplots()
ax.scatter(2, 4)
plt.show()
print(plt.style.available)

输出结果:

设置样式后:

import matplotlib.pyplot as plt
plt.style.use('bmh')
fig, ax = plt.subplots()
ax.scatter(2, 4, s=200)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)

# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

4、scatter() 绘制多个点

import matplotlib.pyplot as plt

x_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]

plt.style.use('bmh')
fig, ax = plt.subplots()
ax.scatter(x_values, y_values, s=100)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)

# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

        两个列表传递给 scatter() 时,Matplotlib 会依次从每个列表中读取一个值来绘制一个点。要绘制的点的坐标分别为(1, 1)、(2, 4)、(3, 9)、(4, 16)和(5, 25)。但是这样手动设置列表数据,效率不高,试试自动生成数据,并画图。

import matplotlib.pyplot as plt

x_values = range(1, 101)
y_values = [x**2 for x in x_values]

plt.style.use('seaborn-v0_8-dark-palette')
fig, ax = plt.subplots()
ax.scatter(x_values, y_values, s=10)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)

# 设置刻度标记的样式
ax.tick_params(labelsize=14)
# 设置每个坐标轴的取值范围
ax.axis([0, 110, 0, 11_000])

plt.show()
print(plt.style.available)

        使用 axis() 方法指定每个坐标轴的取值范围,x轴和 y 轴各自的最小值和最大值。这里将 x 轴的取值范围设置为 0~110,将 y 轴的取值范围设置为 0~11000。

5、设置样式

# 刻度数值的常规表示,当数字过大时会自动转换为科学计数,如下可以常规表示
ax.ticklabel_format(style='plain')

# scatter() 传递参数 color 并将其设置为要使用的颜色
ax.scatter(x_values, y_values, color='red', s=10)

# 颜色映射:是一个从起始颜色渐变到结束颜色的颜色序列
ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

        参数 c 设置成了一个 y 坐标值列表,并使用参数 cmap 告诉 pyplot 使用哪个颜色映射。这些代码将 y 坐标值较小的点显示为浅蓝色,将 y 坐标值较大的点显示为深蓝色。

6、保存绘图

        将绘图保存到文件中:

plt.savefig('nums_plot.png', bbox_inches='tight')

        第一个实参指定要以什么文件名保存绘图,这个文件将被存储到 xxxx.py 所在的程序目录中。第二个实参指定将绘图多余的空白区域裁剪掉。如果要保留绘图周围多余的空白区域,只需省略这个实参。注意:使用 Path对象,将输出文件存储到其他目录。


http://www.kler.cn/a/567575.html

相关文章:

  • iOS中的设计模式(六)- 单利模式
  • 问题解决:word导出的pdf图片不清晰?打印机导出的不是pdf,是.log文本文档?
  • 性能测试丨JMeter 分布式加压机制
  • uniapp 阿里云点播 播放bug
  • 目标检测——数据处理
  • 前端清除浮动有哪些方式?
  • 微服务即时通信系统---(七)文件管理子服务
  • 关于延迟任务线程池,Java提供的ScheduledThreadPoolExecutor,Spring提供的ThreadPoolTaskScheduler
  • flutter 专题 八十 Flutter 应用性能检测与优化
  • AUTOSAR整体架构与应用层详解和综合实例
  • 基于fast-whisper模型的语音识别工具的设计与实现
  • 【西瓜书《机器学习》七八九章内容通俗理解】
  • JWT概念及JAVA使用
  • Winbox5怎样设置上网
  • PAT乙级(1026 程序运行时间)C语言超详细解析
  • 使用Spring Boot与达梦数据库(DM)进行多数据源配置及MyBatis Plus集成
  • seacms v9 实现的MySQL注入
  • Kubernetes 详解笔记
  • Word快速替换修改学术论文所有中的中括号引用未上标格式
  • BiliBili视频下载-原理与实现Python+FFmpeg