Python matplotlib 绘图 折线图

本文详细介绍了如何使用Python的matplotlib库绘制正弦曲线,并通过设置画布尺寸、添加元素、个性化标注等手段优化图表展示。从基础安装到高级定制技巧,包括字体设置、特殊点标记、坐标轴调整和图例展示。
摘要由CSDN通过智能技术生成

1,安装 matplotlib:

python -m pip install -U pip  # 升级pip工具
python -m pip install -U matplotlib  # 安装 matplotlib

2,matplotlib 官网  https://matplotlib.org

          官网有超多的示例、文档及源码。

3,先来一个简单的例子:正弦曲线,y=sin(x)

import numpy as np
from matplotlib import pyplot as plt

# 使用numpy模块生成图像数据
x_data = np.linspace(0.0, 3*np.pi, 100)
y_data = np.sin(x_data)
plt.plot(x_data, y_data)
plt.show()

运行结果:素颜0.0

4,优化一下上面的例子

  1. 设置画布尺寸
  2. 添加坐标轴、标题信息
  3. 重新设定横坐标、纵坐标
  4. 标记特殊点(比如最低点)
  5. 显示中文信息
  6. 显示图例、网格线等

完整代码:

# -*- encoding: utf-8 -*-

import numpy as np
from matplotlib import pyplot as plt
import matplotlib as mpl

# 设置中文字体
mpl.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体

# 解决图像,负号'-'显示为方块的问题
mpl.rcParams['axes.unicode_minus'] = False

# 设置画布,在绘图之前可随时重设
plt.figure(figsize=(8, 5))

# x轴数据
x_data = np.linspace(0.0, 3*np.pi, 100)

# y轴数据
y_data = np.sin(x_data)

ax = plt.subplot()  # ax对象,用于标记曲线上的特殊点,放在画图之前,设置画布之后
plt.plot(x_data, y_data, label="y=sin(x)")  # label:图例名称

# 标记最小值,xy:被标记点的坐标,xytext:设定标记文本的显示位置,arrowprops:设置箭头样式
ax.annotate("(x={0}, y={1})".format("3π/2", "-1"), xy=(3*np.pi/2, -1), xytext=(5.5, -1.3),
            arrowprops=dict(facecolor='white', width=0.1, headwidth=5, shrink=1))

# 设置x轴刻度。不使用默认刻度,这里使用自定义字符串刻度
x_ticks = ["0π", "π/2", "π", "3π/2", "2π", "5π/2", "3π"]
index = list(np.linspace(0.0, 3*np.pi, 7))  # 建立x_ticks位于x轴的索引
plt.xticks(index, x_ticks)

# index = [(np.pi*i/2) for i in range(0, 7)]  # 同上
# plt.xticks(index, x_ticks, rotation=45)  # x轴 刻度倾斜角度,rotation=45

# 设置y轴刻度。不使用默认刻度,这里使用自定义数值刻度
plt.yticks([i for i in np.linspace(-1.5, 1.5, 7)])

# 添加标题
plt.title("正弦曲线", color="blue")  # color文本颜色

# 添加x轴名称
plt.xlabel("x 轴", color="blue")

# 添加y轴名称
plt.ylabel("y 轴", color="blue")

# 保存图片
# plt.savefig("plottest.png")

# 显示网格,
plt.grid(color='gray', linestyle=':', linewidth=1, alpha=0.8)  # 设置网格线透明度:alpha=0.8

# 显示图例,用于显示在调用plot()时,添加的label
plt.legend(loc="upper right")  # loc:图例显示位置

# 显示图片
plt.show()

# END

运行结果:美颜后0.0

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值