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

python之matplotlib入门初体验:使用Matplotlib进行简单的图形绘制

目录

  • 绘制简单的折线图
    • 1.1 修改标签文字和线条粗细
    • 1.2 校正图形
    • 1.3 使用内置样式
    • 1.4 使用scatter()绘制散点图并设置样式
    • 1.5 使用scatter()绘制一系列点
    • 1.6 python循环自动计算数据
    • 1.7 自定义颜色
    • 1.8 使用颜色映射
    • 1.9 自动保存图表
    • 练习题

绘制简单的折线图

绘制一个简单折线图,使用模块pyplopt,该模块中包含很多生成图表的函数。

  • subplot()函数: 在一张图片中绘制一个或者多个图表。变量fig表示画窗,ax即axex,代表画窗中创建的笛卡尔坐标区。

  • plot()方法: 尝试根据给定的数据以有意义的方式绘制图表。

  • plt.show()方法: 打开matplotlib查看器并显示绘制的图片。

import matplotlib as pltsquares = [1,4,9,16,25]
fig,ax = plt.subplots()
ax.plot(squares)plt.show()

在这里插入图片描述

1.1 修改标签文字和线条粗细

对图表进行标签的大小、线条粗细进行调整。

  • linewidth参数:绘制的线条粗细。
  • set_title()函数:给图表制定标题。
  • fontsize参数:指定图表中各种文字的大小。
  • tick_params() 函数 : 设置刻度的样式。其中指定的实参将影响x轴和y轴上的刻度(axes=‘both’ ),并将刻度标记的字号设置为14(labelsize=14)。

注:由于显示中文出现错误时的解决方案:

在代码中添加如下语句 —— 设置字体为:SimHei(黑体)
plt.rcParams[‘font.sans-serif’]=[‘SimHei’]

解决方案

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']
squares = [1,4,9,16,25]
fig,ax = plt.subplots()
ax.plot(squares,linewidth=3)ax.set_title("平方数",fontsize = 24)
ax.set_xlabel('值',fontsize=14)
ax.set_ylabel('值的平方',fontsize=14)ax.tick_params(axis='both',labelsize=14)plt.show()

在这里插入图片描述

1.2 校正图形

可以看到图片中横轴x对应的平方数都是不准确的,因此需要对图片进行校正。

向plot() 提供一系列数时,它假设第一个数据点对应的坐标值为0,但这里第一个点对应的 值为1。为改变这种默认行为,可向plot() 同时提供输入值和输出值。

  • 设置plot函数的输入值为从1开始到5结束的列表,然后把输入输出列表同时传入函数中。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']
squares = [1,4,9,16,25]
input_values = [1,2,3,4,5]
fig,ax = plt.subplots()
ax.plot(input_values,squares,linewidth=3)ax.set_title("平方数",fontsize = 24)
ax.set_xlabel('值',fontsize=14)
ax.set_ylabel('值的平方',fontsize=14)ax.tick_params(axis='both',labelsize=14)plt.show()

在这里插入图片描述

1.3 使用内置样式

可以使用matplotlib中内置的图标样式进行图像的绘制,打印一下已有的样式类型:

print(plt.style.available)

[‘Solarize_Light2’, ‘_classic_test_patch’, ‘_mpl-gallery’, ‘_mpl-gallery-nogrid’, ‘bmh’, ‘classic’, ‘dark_background’, ‘fast’, ‘fivethirtyeight’, ‘ggplot’, ‘grayscale’, ‘seaborn-v0_8’, ‘seaborn-v0_8-bright’, ‘seaborn-v0_8-colorblind’, ‘seaborn-v0_8-dark’, ‘seaborn-v0_8-dark-palette’, ‘seaborn-v0_8-darkgrid’, ‘seaborn-v0_8-deep’, ‘seaborn-v0_8-muted’, ‘seaborn-v0_8-notebook’, ‘seaborn-v0_8-paper’, ‘seaborn-v0_8-pastel’, ‘seaborn-v0_8-poster’, ‘seaborn-v0_8-talk’, ‘seaborn-v0_8-ticks’, ‘seaborn-v0_8-white’, ‘seaborn-v0_8-whitegrid’, ‘tableau-colorblind10’]

import matplotlib.pyplot as plt
print(plt.style.available)
squares = [1,4,9,16,25]
input_values = [1,2,3,4,5]plt.style.use('seaborn-v0_8')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('the square of value',fontsize=14)ax.tick_params(axis='both',labelsize=14)plt.show()

使用plt.style.use(‘seaborn-v0_8’)绘制的图像:

在这里插入图片描述

换了另一个样式:

在这里插入图片描述

1.4 使用scatter()绘制散点图并设置样式

绘制一个点:

import matplotlib.pyplot as pltplt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()
ax.scatter(2,4)plt.show()

在这里插入图片描述
绘制样式:

import matplotlib.pyplot as pltplt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()
ax.scatter(2,4)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',which='major',labelsize=14)
plt.show()

在这里插入图片描述

1.5 使用scatter()绘制一系列点

列表x_values 包含要计算平方值的数,列表y_values 包含前述数的平方值。

将这些列表传递给scatter() 时,Matplotlib依次从每个列表中读取一个值来绘制一个点。

要绘制的点的坐标分别为 (1, 1)、(2, 4)、(3, 9)、(4, 16)和(5, 25)

import matplotlib.pyplot as pltx_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]plt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()
ax.scatter(x_values,y_values,s=100)
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',which='major',labelsize=14)
plt.show()

在这里插入图片描述

1.6 python循环自动计算数据

为1000个点绘制代码,首先创建两个包含x和y值的列表,然后传给scatter方法。

方法axis()指定了每个坐标轴的取值范围,该方法要求提供四个值:x轴y轴的最小值和最大值。

import matplotlib.pyplot as pltx_values = range(1,1001)
y_values = [x**2 for x in x_values]
plt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()ax.scatter(x_values,y_values,s=10)
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('value',fontsize = 14)
ax.set_ylabel('squares of value',fontsize = 14)
ax.axis([0,1100,0,1100000])
plt.show()

在这里插入图片描述

1.7 自定义颜色

设置散点图数据点的颜色:

  1. 传递参数c,设置c的内容。
ax.scatter(x_value,y_value,c='red',s=10)
  1. 使用RGB自定义颜色,传递一个元组,其中包含三个0~1的小数值,分别表示红色、绿色和蓝色。
ax.scatter(x_values, y_values, c=(0, 0.8, 0), s=10)

在这里插入图片描述

1.8 使用颜色映射

**颜色映射 (colormap)**是一系列颜色,从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律。可以用较浅的颜色来显示较小的值,并使用较深的颜色来显示较大的值。

模块pyplot 内置了一组颜色映射。要使用这些颜色映射,需要告诉pyplot 该如何设置数据集中每个点的颜色。下面演示了如何根据每个点的 值来设置其颜色。

ax.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=10)

在这里插入图片描述

1.9 自动保存图表

要让程序自动将图表保存到文件中,可将调用plt.show() 替换为调用plt.savefig()。

plt.savefig('squares_plot.png', bbox_inches='tight')
  • 第一个实参指定要以什么文件名保存图表,这个文件将存储到scatter_squares.py所在的目录。

  • 第二个实参指定将图表多余的空白区域裁剪掉。如果要保留图表周围多余的空白区域,只需省略这个实参即可。

练习题

在这里插入图片描述

import matplotlib.pyplot as pltplt.style.use('seaborn-v0_8')
x_values = range(1,6)
y_valus = [x**3 for x in x_values]
fig,ax = plt.subplots()
ax.scatter(x_values,y_valus)
ax.set_title('cubic number')
ax.set_xlabel('value')
ax.set_ylabel('value to the cube')
plt.show()

在这里插入图片描述

import matplotlib.pyplot as pltplt.style.use('seaborn-v0_8')
x_values = range(1,5001)
y_valus = [x**3 for x in x_values]
fig,ax = plt.subplots()
ax.axis([0,5500,0,125000000000])
ax.scatter(x_values,y_valus,c=y_valus,cmap=plt.cm.Blues,s=10)
ax.set_title('cubic number')
ax.set_xlabel('value')
ax.set_ylabel('value to the cube')
plt.show()

在这里插入图片描述

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

相关文章:

  • [Linux kernel] [ARM64] boot 流程梳理
  • 重建二叉树
  • 支付整体架构
  • 百度智能云:千帆大模型平台接入Llama 2等33个大模型,上线103个Prompt模板
  • 烦人的幻灯片——拓扑排序
  • 无涯教程-Perl - ord函数
  • Python爬虫:js逆向调式操作及调式中遇到debugger问题
  • HTML网页制作技巧:打造出色的用户体验
  • 探究使用HTTP代理ip后无法访问网站的原因与解决方案
  • SpringBoot 全局异常处理进阶
  • 数据结构(一):顺序表详解
  • 【周末闲谈】人工智能热潮下的AIGC到底指的是什么?
  • sklearn垃圾邮件分类
  • UI美工设计岗位的工作职责
  • ES6链判断运算符(?.)的正确打开方式
  • 删除块参照 删除块定义
  • 机器学习笔记:李宏毅ChatGPT:生成式学习的两种策略
  • React 组件防止冒泡方法
  • MAUI+Blazor 如何开启浏览器调试工具
  • 【Spring MVC】Spring MVC基于注解的程序开发
  • 前端探索之旅
  • “冰箭卫士·IP发布会”首次亮相第14届海峡两岸(厦门)文博会
  • 数学建模学习(9):模拟退火算法
  • 带你认识储存以及数据库新技术演进
  • 腾讯云服务器镜像操作系统大全_Linux_Windows清单
  • 基于k8s job设计与实现CI/CD系统
  • ⌈算法进阶⌋图论::并查集——快速理解到熟练运用
  • 【ROS】fsd_algorithm架构学习与源码分析(致敬)
  • PHP最简单自定义自己的框架定义常量自动生成目录(三)
  • 栈和队列详解