文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在python中使用matplotlib库绘图

2023-06-15 05:12

关注

这篇文章给大家介绍如何在python中使用matplotlib库绘图,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

首先介绍绘图时常用的基础命令:

plt.plot(x,y)即为绘图命令。
①基础画图:

plt.plot(x, y)

②设置颜色:

color属性
如果没有特别要求的话可以不手动设置颜色,如果要在一张图上画不同的线时,会自动分配颜色。也可以使用ax.plot效果相同。

plt.plot(x, y, color = 'red')

③设置线型:

lineStyle属性
可以选择'-', ‘–', ‘-.', ‘:', ‘None', ' ', ‘', ‘solid', ‘dashed', ‘dashdot', 'dotted'这些类型的。

plt.plot(x, y, lineStyle = 'dashdot')

④设置标注类型:

marker属性
有不同的marker可以选择,比如'o','*',‘x'。

plt.plot(x, y ,marker='x')

⑤设置图例:

label属性。

plt.plot(x, y ,marker='o',label='语文成绩')plt.plot(x, y ,marker='*',label='数学成绩')plt.plot(x, y ,marker='x',label='英语成绩')

只是这样图例是不会显示的,还需要加上loc是位置设置,具体见后面讲解。

plt.legend(loc='upper left')

三、正常显示中文:

①windows系统:

plt.rcParams['font.family'] = ['sans-serif']plt.rcParams['font.sans-serif'] = ['SimHei']

mac系统:
这里是这样设置的,也可以设置为其他中文字体。

plt.rcParams["font.family"] = 'Arial Unicode MS'

②正常显示符号:

plt.rcParams['axes.unicode_minus'] = False

四、设置图样或子图

①如果只画一张图的话可以,figsize设置的是x轴和y轴方向图片大小的比例。这里要设置好否则可能会出现图片显示不完全的情况,如果通过savefig命令保存的话,也是按照这个比例来保存的图片。

f = plt.figure(figsize=(8,6))

或是,虽然是通过subplots命令,可是不指定nrows和ncols默认只有一个子图。

f, ax = plt.subplots(figsize=(8,6))

ax表示的是当前坐标轴。

ax = plt.gca()

如果有多个子图的话:
nrows为行,ncols为列,figsize为图片的尺寸。

f, ax = plt.subplots(nrows=2,ncols=1,figsize=(8,6),facecolor='white')

或是

fig = plt.figure()ax1 = fig.add_subplot(2,1,1)ax2 = fig.add_subplot(2,1,2)ax1.plot(x,y)ax2.plot(x,z)

或是

ax1 = plt.subplot(2,1,1)ax2 = plt.subplot(2,1,2)ax1.plot(x,y)ax2.plot(x,z)

其他属性:第一个属性标记的是窗口的名称,dpi设置的分辨率。

f = plt.figure('成绩窗口',figsize=(8,6),facecolor='white',dpi=100)

如何在python中使用matplotlib库绘图

②设置图片背景色:

f = plt.figure(figsize=(8,6),facecolor='blue')

如何在python中使用matplotlib库绘图

如果要设置图片前景色,要用

ax.set(facecolor='white')

如何在python中使用matplotlib库绘图

五、设置x轴或y轴相关属性:

①设置x轴的刻度:
需要指定标注的位置,标注的具体值,可以通过fontsize指定大小。

x = [0,2,4,6,8]x_label = ['第一学期','第二学期','第三学期','第四学期','第五学期']plt.xticks(x, x_label,fontsize=13)

这里的xticks支持latex,

x_label = [r'$e^x$',r'$x_1^2$',r'$\lambda$',r'$\frac{1}{2}$',r'$\pi$']

如何在python中使用matplotlib库绘图

有时候可能标注的值很多,我们想把x轴的刻度竖着显示:
只需要在x_label中要换行的地方加上'\n‘换行符即可。

x = [0,2,4,6,8]x_label = ['第\n一\n学\n期','第二\n学期','第\n三\n学\n期','第四\n学期','第五\n学期']plt.xticks(x, x_label,fontsize=13)#这有一张图

如何在python中使用matplotlib库绘图

②设置x轴的标签:
这两条命令是一样的作用。

plt.xlabel(u"学期")ax.set_xlabel(u"学期")#设置x轴的标签值

如何在python中使用matplotlib库绘图

xlabel同样支持latex

plt.xlabel(u"$x^2$")

如何在python中使用matplotlib库绘图

③设置x轴的范围:
这两条命令也是一样的作用。
一般不需要人为指定范围,程序会根据输入的最大值和最小值自动确定一个范围。

plt.xlim(0,100)ax.set_xlim(0,100)

如何在python中使用matplotlib库绘图

设置y轴的相关属性和x轴的相关属性方法是一样的,只需要把x替换成y即可。

六、设置

fontsize为大小,fontweight指定加粗。下面两条命令作用相同。

plt.title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold')ax.set_title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold')

如何在python中使用matplotlib库绘图

这里程序会自动将放在一个合适的位置,当然也难免出现title不是我们想要的位置的情况,这是可以通过指定x或是y属性,来设置title的位置。正常范围是[0,1]可以设置负零点几或是一点几,需要多尝试,如果设置超出图片范围会看不到title的。
比如这里我设置y=-0.1,可以看到title到下面去了。

plt.title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold',y=-0.1)

如何在python中使用matplotlib库绘图

七、设置图例:

法一:
在画图的时候做好标注。

plt.plot(x, y[0,:],marker='o',label='语文成绩')plt.plot(x, y[1,:],marker='*',label='数学成绩')plt.plot(x, y[2,:],marker='x',label='英语成绩')plt.legend(loc='upper left')

法二:
不写在plot中,统一写在legend中。
可以指定对应曲线,这里的曲线定义后一定要加',',否则会报错。

a,=plt.plot(x, y[0,:],marker='o')b,=plt.plot(x, y[1,:],marker='*')c,=plt.plot(x, y[2,:],marker='x')plt.legend((a,b,c),('语文成绩','数学成绩','英语成绩'),loc='upper left')

或是不指定对应曲线,

plt.legend(('语文成绩','数学成绩','英语成绩'),loc='upper left')

不指定对应曲线的方式不推荐,有时候并不想给每个曲线都加图例,不加图例的曲线可以不写label属性。而该方式会按plot的顺序,加图例,不会跳过不想加图例的曲线,除非是最后的曲线,不写就不会加。
legend的命令只能通过plt设置,如果有多个子图的话,

ax = plt.subplot(2,1,1)

这样对plt操作就可以对子图操作。

八、进行标注:

标注的话需要写循环,一个个标注,不能这样写plt.text(x,y,"%s"%str(y)),不会一次标注一堆。
fontsize是设置标注的字体。用ax是一样的。

for i in range(len(x)):plt.text(x[i],y[i],"%s"%str(y[i]), fontsize=12)#ax.text(x[i],y[i],"%s"%str(y[i]), fontsize=12)

如何在python中使用matplotlib库绘图

经常出现legend把图片内容给挡住了的情况,这里也可以指定legend的位置。

如何在python中使用matplotlib库绘图

可以通过bbox_to_anchor属性来调整legend的位置。

plt.legend(bbox_to_anchor=(1.05, 1), loc=2)

如何在python中使用matplotlib库绘图

图例还有许多其他的属性,

九、保存图片:

plt.savefig('小明成绩变化图.png')

十、显示图片:

plt.show()

十一、删除边框:

这里有四个方向,可以选择删除哪一个方向的边框。

ax.spines['right'].set_visible(False)ax.spines['top'].set_visible(False)ax.spines['bottom'].set_visible(False)ax.spines['left'].set_visible(False)

十二、显示/不显示网格:

ax.grid(True)ax.grid(False)

python的五大特点是什么

python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。

关于如何在python中使用matplotlib库绘图就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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