文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python plt 绘图详解(plt.版本)

2023-09-09 06:26

关注

文章目录

一.plt介绍

  python中的绘图工具 :matplotli,专门用于画图。

二.安装与导入

  工具包安装:

conda install matplotli

  导入:

import matplotlib.pyplot as plt

三.使用说明

1. 使用plt.plot与plt.show绘制并显示图像

plt.plot(x, y, color, linestyle, marker, markersize, markeredgewidth, markeredgecolor, markerfacecolor, alpha, linewidth)

(1)曲线颜色(color 简写为 c):

rgbyk
红色绿色蓝色黄色黑色

(2)点型(标记marker):

+o*.xsd^vp
加号圆圈星号实心点叉号正方形钻石形上三角下三角五角星

(3)线型(linestyle 简写为 ls):

--.
实线虚线点线点横线

(4)剩余参数说明

markersize 简写为 ms(标记大小):实数

markeredgewidth 简写为 mew(标记边缘宽度):实数

markeredgecolor 简写为 mec(标记边缘颜色):颜色选项中的任意值

markerfacecolor 简写为 mfc(标记表面颜色):颜色选项中的任意值

alpha(透明度): [0,1]之间的浮点数

linewidth(线宽):实数

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号x = [1, 2, 3, 4, 5, 6, 7, 8, 9]y = [1, 2, 3, 4, 5, 6, 7, 8, 9]y2 = [1, 4, 9, 16, 25, 36, 49, 64, 81]# 绘制的曲线属性设置line1, = plt.plot(x, y, color='r', marker='d', linestyle='--', markersize=6, alpha=0.5, linewidth=3)line2, = plt.plot(x, y2, color='g', marker='*', linestyle='-', markersize=6, alpha=0.5, linewidth=3)# plt.plot(x, y, 'rd--')  # 可以使用这种方式进行画图的属性设置# x,y坐标轴名称设置,可以同时设置标签的字体大小颜色等plt.xlabel(u'x坐标轴', fontsize=14, color='r')plt.ylabel(u'y坐标轴', fontsize=14, color='b')# 显示曲线图像plt.show()
plt.show()显示结果

2.图像属性设置

(1)坐标轴标签设置

# 注意,要使用中文的话,需要在引入库后,添加下列代码plt.rcParams['font.sans-serif']=['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号# x,y坐标轴名称设置,可以同时设置标签的字体大小颜色等plt.xlabel(u'x坐标轴', fontsize=14, color='r')plt.ylabel(u'y坐标轴', fontsize=14, color='b')

(2)图像标题设置

# 设置图表标题plt.title(u"图像标题", fontsize=14, color='k')

(3)图例设置

# 添加图例plt.legend([line1, line2], ["Weekend", "Weekday"], loc='upper left')

(4)坐标轴范围设置

# 设置x轴的范围为[0, 100],y轴的范围为[0, 100], 或者通过xlim, ylim设置XY轴的范围上下限plt.axis([0, 10, 0, 100])# plt.xlim(0, 10)# plt.ylim(0, 100)

(5)坐标间隔设定

plt.xticks(参数一,参数二,参数三) 用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定。

# 坐标间隔及标签设定a = [1, 2, 3, 4, 5]labels = ['A', 'B', 'C', 'D', 'E']plt.xticks(a, labels, rotation=0)

(6)添加网格

# 添加网格plt.grid(visible=True, axis='x')  # 只显示x轴网格线plt.grid(visible=True, axis='y')  # 只显示y轴网格线
最终显示效果

全部代码

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号x = [1, 2, 3, 4, 5, 6, 7, 8, 9]y = [1, 2, 3, 4, 5, 6, 7, 8, 9]y2 = [1, 4, 9, 16, 25, 36, 49, 64, 81]# 绘制的曲线属性设置line1, = plt.plot(x, y, color='r', marker='d', linestyle='--', markersize=6, alpha=0.5, linewidth=3)line2, = plt.plot(x, y2, color='g', marker='*', linestyle='-', markersize=6, alpha=0.5, linewidth=3)# plt.plot(x, y, 'rd--')  # 可以使用这种方式进行画图的属性设置# x,y坐标轴名称设置,可以同时设置标签的字体大小颜色等plt.xlabel(u'x坐标轴', fontsize=14, color='r')plt.ylabel(u'y坐标轴', fontsize=14, color='b')# 设置图表标题plt.title(u"图像标题", fontsize=14, color='k')# 添加图例plt.legend([line1, line2], ["Weekend", "Weekday"], loc='upper left')# 设置x轴的范围为[0, 100],y轴的范围为[0, 100], 或者通过xlim, ylim设置XY轴的范围上下限plt.axis([0, 10, 0, 100])# plt.xlim(0, 10)# plt.ylim(0, 100)# 坐标间隔及标签设定a = [1, 2, 3, 4, 5]labels = ['A', 'B', 'C', 'D', 'E']plt.xticks(a, labels, rotation=0)# 添加网格plt.grid(visible=True, axis='x')  # 只显示x轴网格线plt.grid(visible=True, axis='y')  # 只显示y轴网格线# 显示曲线图像plt.show()

3.一张图像上绘制多个图

import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif']=['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号x = np.arange(0, 100, 10)plt.figure(1)  # 生成第一个图,且当前要处理的图为fig.1plt.subplot(1, 2, 1)  # fig.1是一个一行两列布局的图,且现在画的是左图y1 = np.exp(x)plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1)  # 画图plt.xlabel("x")plt.ylabel("y1")plt.figure(1)  # 当前要处理的图为fig.1,而且当前图是fig.1的左图plt.subplot(1, 2, 2)  # 当前图变为fig.1的右图y2 = np.exp(1.5 * x)plt.plot(x, y2, color="b", linestyle="-", marker="v", linewidth=1)plt.xlabel("x")plt.ylabel("y2")plt.show()
多图显示

4.在一张图上绘制双坐标轴

主要通过fig.add_subplot()来添加坐标轴,然后把坐标轴绘制在同一张图上

import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif']=['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号# 生成数据x = np.arange(1, 12, 4)y = np.arange(1, 4, 1)x2 = x * 10y2 = y ** 2# 设置画布大小width, height = 16, 14  # 单位为cm;因为保存图片时使用 bbox_inches = 'tight' 可能使图片尺寸略微放大,所以此处宽度设置得略小# 设置刻度线在坐标轴内plt.rcParams['xtick.direction'] = 'in'plt.rcParams['ytick.direction'] = 'in'# 绘制图像lns = []  # 用于存储绘图句柄以合并图例的list# 创建画布并设置大小fig = plt.figure()fig.set_size_inches(width / 2.54, height / 2.54)  # 因为画布输入大小为厘米,此处需转换为英寸,所以除以2.54# 通过 add_subplot 方式创建两个坐标轴,相当于在同一个子图上叠加了两对坐标系ax = fig.add_subplot(111, label="1")ax2 = fig.add_subplot(111, label="2", frame_on=False)# 绘制图1并将绘图句柄返回,以便添加合并图例lns1 = ax.plot(x, y, color='r', label='r')lns = lns1lns2 = ax2.plot(x2, y2, color='b', label='b')lns += lns2# 调整第二对坐标轴的label和tick位置,以实现双X轴双Y轴效果ax2.xaxis.tick_top()ax2.yaxis.tick_right()ax2.xaxis.set_label_position('top')ax2.yaxis.set_label_position('right')# 设置坐标轴标注ax.set_xlabel("X1", color='r', fontsize=12)ax.set_ylabel("Y1", color='r', fontsize=12)ax2.set_xlabel('X2', color='b', fontsize=12)ax2.set_ylabel('Y2', color='b', fontsize=12)# 设置图表标题fig.suptitle("Title", fontsize=12)# 设置坐标轴刻度颜色ax.tick_params(axis='x', colors='r')ax.tick_params(axis='y', colors='r')ax2.tick_params(axis='x', colors='b')ax2.tick_params(axis='y', colors='b')# 设置坐标轴线颜色ax.spines["left"].set_color("r")  # 修改左侧颜色ax.spines["right"].set_color("b")  # 修改右侧颜色ax.spines["top"].set_color("b")  # 修改上边颜色ax.spines["bottom"].set_color("r")  # 修改下边颜色# 添加图例labs = [l.get_label() for l in lns]ax.legend(lns, labs, loc=0, fontsize=12)plt.tight_layout()plt.show()

来源地址:https://blog.csdn.net/qq_30150579/article/details/128001322

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯