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

数据分析基础之《matplotlib(2)—折线图》

一、折线图绘制与保存图片

1、matplotlib.pyplot模块
matplotlib.pyplot包含了一系列类似于matlab的画图函数。它的函数作用于当前图形(figure)的当前坐标系(axes)

import matplotlib.pyplot as plt

2、折线图绘制与显示
展示城市一周的天气,比如从星期一到星期日的天气温度如下

# 1)创建画布(容器层)
plt.figure()
# 2)绘制折线图(图像层)
plt.plot([1,2,3,4,5,6,7], [17,17,18,15,11,11,13])
# 3)显示图像
plt.show()

3、设置画布属性与图片保存
plt.figure(figsize=(), dpi=)
figsize:指定的长宽
dpi:图像的清晰度,dot per inch 每英寸有多少个点
返回fig对象
plt.savefig(path)

# 1)创建画布(容器层)
plt.figure(figsize=(20,8), dpi=100)
# 2)绘制折线图(图像层)
plt.plot([1,2,3,4,5,6,7], [17,17,18,15,11,11,13])
# 保存图像
plt.savefig("/root/test78.png")
# 3)显示图像
plt.show()

注:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片

二、完善原始折线图1(辅助显示层)

1、案例:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度

2、准备数据并画出初始折线图​

# 案例:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度import random# 1、准备数据 x y
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)# 3、绘制图像
plt.plot(x, y_shanghai)# 4、显示图像
plt.show()

3、添加自定义x、y刻度
修改刻度

(1)plt.xticks(x, [labels], **kwargs)
说明:
x:要显示的刻度值
[labels]:数组类型,用于设置每个间隔的显示标签
**kwargs:用于设置标签字体倾斜度和颜色等外观属性

(2)plt.yticks(y, **kwargs)
说明:
y:要显示的刻度值
**kwargs:刻度值显示的说明

import random# 1、准备数据 x y
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)# 3、绘制图像
plt.plot(x, y_shanghai)# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))# 4、显示图像
plt.show()

4、中文显示问题解决

(1)安装依赖包
yum install fontconfig mkfontscale

(2)从windows系统复制一个微软雅黑
C:\Windows\Fonts\msyh.ttc

(3)将msyh.ttc上传到
/usr/share/fonts/

(3)刷新缓存
mkfontscale && mkfontdir && fc-cache

(4)找到配置文件位置

import matplotlib
matplotlib.matplotlib_fname()

显示
/usr/local/lib64/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

(6)编辑文件matplotlibrc
找到font.family,去掉注释
找到font.sans-serif,去掉注释,并加上Microsoft YaHei

(7)删除缓存
cd ~/.cache/matplotlib/
rm -r *

(8)代码

import random# 设置字体
plt.rcParams["font.sans-serif"]=["Microsoft YaHei"]
# 该语句解决图像中的“-”负号的乱码问题
plt.rcParams["axes.unicode_minus"]=False# 1、准备数据 x y
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)# 3、绘制图像
plt.plot(x, y_shanghai)# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))# 4、显示图像
plt.show()

5、添加网络显示
plt.grid(b, linestyle='', alpha=)
说明:
b:布尔值,是否显示网格
linestyle:线条风格
alpha:透明度

import random# 设置字体
plt.rcParams["font.sans-serif"]=["Microsoft YaHei"]
# 该语句解决图像中的“-”负号的乱码问题
plt.rcParams["axes.unicode_minus"]=False# 1、准备数据 x y
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)# 3、绘制图像
plt.plot(x, y_shanghai)# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))# 添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)# 4、显示图像
plt.show()

6、添加描述信息
添加x轴、y轴,描述信息及标题

import random# 设置字体
plt.rcParams["font.sans-serif"]=["Microsoft YaHei"]
# 该语句解决图像中的“-”负号的乱码问题
plt.rcParams["axes.unicode_minus"]=False# 1、准备数据 x y
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)# 3、绘制图像
plt.plot(x, y_shanghai)# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))# 添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)# 添加描述信息
plt.xlabel("时间变化")
plt.ylabel("温度变化")
plt.title("某城市11点到12点每分钟的温度变化状况")# 4、显示图像
plt.show()

http://www.lryc.cn/news/242285.html

相关文章:

  • Rust语言入门教程(三) - 函数与模块系统
  • ubuntu22.04 arrch64版在线安装java环境
  • 概率论与数理统计中常见的随机变量分布律、数学期望、方差及其介绍
  • 骨传导耳机的优缺点都有哪些?骨传导耳机值得入手吗?
  • 在ASP.NET Core 中使用 .NET Aspire 消息传递组件
  • NLP学习
  • Linux-Ubuntu环境下搭建SVN服务器
  • python tkinter使用(四)
  • 记录ruoyi-plus-vue部署的问题
  • 如何在springboot项目中使用minio上传下载删除文件
  • SSM个性化旅游管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
  • 4-Docker命令之docker version
  • Redis高并发缓存架构
  • 谨防利用Redis未授权访问漏洞入侵服务器
  • 关于一些bug的解决1、el-input的输入无效2、搜索之后发现数据不对3、el多选框、单选框点击无用4、
  • 使用 JavaScript 进行 API 测试的综合教程
  • Vue 2.0源码分析-Virtual DOM
  • (HAL库版)freeRTOS移植STMF103
  • vue2-axios
  • 创建maven的web项目
  • 使用uniapp开发系统懒加载图片效果
  • 导入PIL时报错
  • MyBatis Generator 插件 详解自动生成代码
  • SkyWalking全景解析:从原理到实现的分布式追踪之旅
  • 新手如何买卖可转债,可转债投资基础入门
  • 研习代码 day39 | 动态规划——完全背包的应用
  • Rust语言入门教程(五) - 流控制语句
  • 字符串:leetcode1410. HTML 实体解析器
  • springboot+vue项目如何集成onlyoffice开源文档组件
  • Android okhttp3.0配置https信任所有证书