02-matplotlib折线图

本文详细介绍了Matplotlib这一流行的Python绘图库,包括其基本使用方法、如何设置图表样式、中文显示、双轴图表、网格绘制及更多高级功能。通过实例展示了折线图、散点图、直方图和柱状图的绘制过程。

什么是matplotlib

最流行的python底层绘图库,主要做数据可视化图表,名字取自MATLAB,模仿MATLAB创建

matplot基本要点

axis轴:指的是x或者y这种坐标轴

# -*- coding: utf-8 -*-
"""
Created on Thu Feb 20 13:12:17 2020

@author: X星云Nebularr
"""
# 导入了pyplot模块并进行重命名
from matplotlib import pyplot as plt

x = range(2, 26, 2) # 数据在x轴的位置,是一个可迭代对象
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15] 
# 数据在y轴的位置,是一个可迭代对象

plt.plot(x, y) #传入x和y,通过plot绘制出折线图
plt.show() #展示图形

运行结果:
对应的折线图
需要完善的几个问题:

  • 设置图片大小 :figure方法(设置dpi和figsize属性)
  • x轴的刻度值:xticks方法(在plot方法前后都能使用;用列表生成式和切片可以得到想要的效果;字符串用等)
  • 无法显示中文:https://www.jianshu.com/p/57b94a2c0985
  • 双轴没有图形信息:xlabel和ylabel,title方法
  • 绘制网格:grid(),alpha透明度系数
  • 多表时添加图例:plot方法中设置label属性,并使用lengend方法。也可以用loc属性设置图例位置
  • 添加文本注释
  • 添加水印
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 20 13:12:17 2020

@author: X星云Nebularr
"""
import matplotlib as mpl
from matplotlib import pyplot as plt # 导入了pyplot模块并进行重命名、
# matplotlib默认不支持中文
mpl.rcParams['font.sans-serif'] = ['MicroSoft YaHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug


fig = plt.figure(figsize = (20, 10), dpi = 80) # figsize设置图像尺寸大小,dpi参数可以让图像发大不失真
x = range(2, 26, 2) # 数据在x轴的位置,是一个可迭代对象,对range()必须转换为列表再取步长
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15] # 数据在y轴的位置,是一个可迭代对象
y_1 = [16, 20, 15, 17, 20, 27, 26, 24, 24, 23, 14, 15]
_x = x
_xtick_list = ["时间.{}".format(i) for i in _x]
plt.xticks(_x, _xtick_list, rotation = 45) # 打印字符串需要一一对应 

#plt.xticks([i/2 for i in range(4, 49)][::3]) # 设置x轴刻度值
plt.yticks(range(min(y), max(y)+1)) # 设置y
plt.xlabel("时间/s")
plt.ylabel("温度/℃")
plt.title("某市区的温度统计图")
plt.grid(alpha = 0.4)
plt.plot(x, y, label = "A城", color = "green") #传入x和y,通过plot绘制出折线图
plt.plot(x, y_1, label = "B城", color = "cyan", linestyle = "--", linewidth = 4)
plt.legend(loc = "upper left")
plt.savefig("./fig.svg") # 可以保存成SVG矢量图格式,放大没有锯齿
plt.show() #展示图形


效果
在这里插入图片描述

matplot的散点图、直方图、柱状图

我们需要清楚不同图形的应用场景

  • 散点图:scatter方法,注意横坐标,避免数据重合
  • 条形图:bar方法,barh把轴交换,横向。
  • 直方图:hist

更多的画图工具

百度的echart
python的plotly

总结

在这里插入图片描述
在这里插入图片描述

后记

Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。

https://www.jianshu.com/p/f796f12555f6

### Matplotlib 绘制线形图教程 Matplotlib 是 Python 的一个强大工具包,主要用于科学计算中的数据可视化。通过它可以轻松实现各种类型的图表绘制,其中包括折线图。 以下是关于如何使用 Matplotlib 绘制线形图的具体方法: #### 导入必要的库 为了使用 Matplotlib 进行绘图,首先需要导入 `matplotlib.pyplot` 模块,并通常将其命名为 `plt` 以便于后续调用[^1]。 ```python import matplotlib.pyplot as plt ``` #### 准备数据 在绘制折线图之前,需准备两组或多组对应的数据点作为 X 轴和 Y 轴的坐标值。例如: ```python x = [1, 2, 3, 4, 5] y = [2, 3, 5, 7, 11] ``` #### 创建基本折线图 可以通过 `plot()` 方法来创建一条简单的折线图。此方法接受两个参数分别表示 X 和 Y 坐标轴上的数值[^2]。 ```python plt.plot(x, y) plt.show() ``` #### 自定义线条样式 除了默认设置外,还可以进一步调整线条的颜色、宽度以及标记点等属性。这些选项可通过额外的关键字参数传递给 `plot()` 方法。例如: ```python plt.plot(x, y, color='red', linewidth=2, marker='o') plt.show() ``` 上述代码片段设置了红色线条、线宽为 2 并且在线上添加圆形标记。 #### 添加多条折线 如果希望在同一张图表中显示多个变量的变化趋势,则可以在同一个 figure 对象上调用多次 plot() 来叠加不同系列的数据。比如: ```python x = [1, 2, 3, 4, 5] y1 = [2, 3, 5, 7, 11] y2 = [3, 5, 8, 13, 21] plt.plot(x, y1, label="Series 1", linestyle="--") plt.plot(x, y2, label="Series 2", linestyle="-.") plt.legend() plt.show() ``` 这里还展示了如何利用 legend 功能区分不同的数据序列。 #### 结论 综上所述,Matplotlib 提供了一个灵活而强大的平台来进行各类二维图形的制作,其中也包括了本文所讨论的折线图绘制技巧。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值