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

matplotlib中pyplot的基本使用

基本绘图

import random as r
from matplotlib import pyplot as plt

x=range(1,21)
y=[r.randint(1,40) for i in range(20)]
# 传入x,y坐标数据
plt.plot(x,y)
# 显示图像
plt.show()

设置图片大小和保存图片

import random as r
from matplotlib import pyplot as plt

x=range(1,21)
y=[r.randint(1,40) for i in range(20)]

#设置图片尺寸和清晰度
plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y)

#保存图片
plt.savefig(r'C:\Users\xxx\Desktop\1.png')

plt.show()

设置x坐标和y坐标显示内容

import random as r
from matplotlib import pyplot as plt

x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y)


# x坐标显示内容设置方式
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)

#plt.xticks(x,_xtick_labels,rotation=90)rotation关键字用来表示将文字旋转多少度

# y根据自己需求设置
# _ytick_labels=["{}cm".format(i) for i in y]
# plt.yticks(y,_ytick_labels)


plt.savefig(r'C:\Users\xxx\Desktop\1.png')
plt.show()

 

可以发现坐标出现了乱码,添加下列代码可以防止中文乱码

import random as r
from matplotlib import pyplot as plt

#防止中文乱码
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False

x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y)


_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)

plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()

 

设置x轴标题,y轴标题,顶部标题

import random as r
from matplotlib import pyplot as plt

from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False

x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y)


_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)

# 用来设置x轴标题,y轴标题,顶部标题
plt.xlabel("年龄")
plt.ylabel("身高")
plt.title("示例标题")

plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()

 

 如何显示多条线,以及添加说明

import random as r
from matplotlib import pyplot as plt

from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False

x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
y2=[r.randint(1,100) for i in range(20)]


plt.figure(figsize=(20,8),dpi=80)

#给线条设置label才能添加图例
#多次plot就可以画多条线
plt.plot(x,y,label="小明")
plt.plot(x,y2,label="小红")

#添加图例,loc设置位置
plt.legend(loc="upper left")

_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)

plt.xlabel("年龄")
plt.ylabel("身高")
plt.title("示例标题")

plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()

 

此外plot中还可以设置多种样式

plt.plot(x,y,label="自己",color="cyan",linestyle="-.",linewidth="5")
#color可以用来设置颜色,linestyle设置样式,linewidth设置线条粗细

最后一个知识点,设置网格线的数量取决于xtick和ytick

import random as r
from matplotlib import pyplot as plt

from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False

x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
y2=[r.randint(1,100) for i in range(20)]


plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y,label="小明",linewidth="5")
plt.plot(x,y2,label="小红")

plt.legend(loc="upper left")

_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)

plt.yticks(list(range(10,200,10)))

plt.xlabel("年龄")
plt.ylabel("身高")
plt.title("示例标题")

plt.grid(alpha=1)#设置网格线,alpha设置网格清晰度

plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/14892.html

相关文章:

  • jvm 线程监控调试
  • Qt的isVisible ()函数介绍和判断窗口是否在当前界面显示
  • 理解 package.json :在基于 TypeScript 开发 Babylon.js 项目中的关键角色
  • DeepSeek底层揭秘——知识图谱与语料库的联邦学习架构
  • 今日AI和商界事件(2025-02-13)
  • 实现pytorch注意力机制-one demo
  • 业务干挂数据库,Oracle内存分配不足
  • css:position
  • K8s之存储卷
  • Prompt通用技巧
  • redis sentinel模式 与 redis 分片集群 配置
  • (五)Spring Boot学习——spring security +jwt使用(前后端分离模式)
  • iOS实现生物识别
  • git: 如何查询某个文件或者某个目录的更新历史
  • 服务器之连接简介(Detailed Explanation of Server Connection)
  • 网络编程01 - 速通计网知识点
  • python学习第十四天之机器学习名词介绍
  • RNN复兴!性能反超Transformer,训练速度提升1300倍!
  • 数据结构 栈和队列
  • 本地部署DeepSeek + AnythingLLM 搭建高效安全的个人知识库
  • 突破数据壁垒,动态住宅代理IP在数据采集中的高效应用
  • 系统思考—团队学习
  • SpringBoot的单机模式是否需要消息队列?分布式应用中消息队列如何和服务的发现与注册、配置中心、SpringMVC相配合
  • 有哪些免费的SEO软件优化工具
  • AGI时代的认知重塑:人类文明的范式转移与思维革命
  • Python多进程Logging
  • 金融风控项目-业务基础
  • carbon 加入 GitCode:Golang 时间处理的 “瑞士军刀”
  • C语言基础学习之基本语法
  • C++智能指针的使用