matplotlib学习笔记

图片.png
matplotlib是什么?

matplotlib是用python开发的可视化和分析工具,是一款非常强大的python画图工具。具备优秀的跨平台交互式属性,能够生成出版质量级的图表。
只需几行代码就可以生成:图表、直方图、功率图、条形图、散点图
接下来,我们将正式开始学习matplotlib!

如何安装matplotlib
pip install matplotlib

目前建议使用Python3.8,如果使用Python3.9可能会出现无法通过pip安装matplotlib的情况。

导入模块

使用import导入模块matplotlib.pyplot;并简写成plt;
为了方便获取和处理数据我们也导入numpy模块,并简写成np;

import matplotlib.pyplot as plt
import numpy as np
定义函数

然后使用numpy创建两组数据,使用np.linespace定义x,范围是(-2,4),个数是50,系统会生成一组(-2,4)以内均匀分布的50个数,(x,y1)表示曲线1,(x,y2)表示曲线2。

x = np.linspace(-2,4,50)
y1 = 3*x + 2
y2 = x ** 2
定义窗口并画图

在画图前使用plt.figure()定义一个图像窗口,使用figsize参数可以设置弹出图像的像素大小,当我们设置figsize=(8,5)时,则表明绘制的图像大小为:800*500像素。
使用plt.plot()来绘制曲线,可以直接将表示x轴y轴的列表传进去。也可以添加一些额外的参数。

参数名 用途 备注
color 设置曲线颜色 'red'红色、'green'绿色
linewidth 设置曲线宽度 可以设置数值1.0、1.5等
linestyle 设置曲线类型 '-'实线、'--'虚线、'-.'i型线
plt.figure(figsize=(8,5))
plt.plot(x, y1, color='red', linestyle='-', linewidth=1.5)
plt.plot(x, y2, color='blue', linestyle='-.', linewidth=2.0)
plt.show()
图片.png
设置坐标轴名称及范围

使用plt.xlim设置x轴范围:(-2,2);
使用plt.ylim设置y轴范围:(-5,5);
使用plt.xlabel设置x轴名称;
使用plt.ylabel设置y轴名称;

plt.xlim(-2, 2)
plt.ylim(-5, 5)
plt.xlabel("this is x")
plt.ylabel("this is y")
图片.png
设置坐标轴中文名称

如果给坐标轴设置的名称有中文的话,直接通过plt.xlabel()设置的话会乱码,我们需要通过rc()方法指定中文的字体才可以。

import matplotlib
matplotlib.rc("font",family="KaiTi")

除了设置成楷体外,还可以设置的中文字体有:

DengXian
FangSong
LiSu
YouYuan
Adobe Fan Heiti Std
Adobe Fangsong Std
Adobe Heiti Std

此时再调用xlabel、ylabel设置x轴y轴的中文名称,会出现游标中的负号无法正常显示,此时再添加一个语句即可正常显示:

plt.rcParams['axes.unicode_minus'] = False
图片.png
定义坐标轴刻度及名称

如果我们希望坐标轴的刻度不是一连串的数字而是一些文字,或者想要调整刻度的系数。这时就需要plt.xticks()来调整。
我们x轴设置新刻度new_ticks,从-1到2,个数是5,我们就可以这样写。

new_ticks = np.linspace(-1,2,5)
plt.xticks(new_ticks)

y轴的刻度[-5,-4,4,5]对应的名称为['很差','一般','还行','很好'],我们可以这样写:

plt.ytricks([-5,-4,4,5],['很差','一般','还行','很好'])
图片.png

这样我们就实现了对x轴调整稀疏程度,对y轴调整指定范围指定名称。

调整边框

我们发现以上的图像都有四条实线边框,我们如果想隐藏某个边框或者设置指定颜色改怎么做呢?
plt.gca()获取边框对象,使用.spines设置指定边框,使用set_color方法指定边框线条的颜色,如果想隐藏边框则使用none参数。

ax = plt.gca()  # 获取坐标轴对象
ax.spines['top'].set_color('none')  # 隐藏上边框
ax.spines['right'].set_color('none')  # 隐藏右边框
图片.png

如果想x轴与y轴交界的位置:

ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
图片.png

以上就是今天matplot基础部分的全部内容了,后续会继续更新新的内容

总结

今天所讲的全部代码如下:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib

matplotlib.rc("font", family="KaiTi")

x = np.linspace(-2, 4, 50)

y1 = 3*x + 2
y2 = x**2

plt.figure(num=3, figsize=(8, 5))
plt.plot(x, y1, color='red', linestyle='-', linewidth=1.5)
plt.plot(x, y2, color='blue', linestyle='-.', linewidth=2.0)
plt.xlim(-2, 2)
plt.ylim(-5, 5)
# plt.xlabel("这是x轴")
# plt.ylabel("这是y轴")
plt.rcParams['axes.unicode_minus'] = False
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-5,-4,4,5],['很差','一般','还行','很好'])
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
plt.show()

知识点自测:

  • 导入模块并重命名import matplotlib.pyplot as plt
  • 定义图像窗口 plt.figure()
  • 绘图 plt.plot(x,y)
  • 定义坐标轴范围 plt.xlim()
  • 定义坐标轴刻度及名称plt.xticks()
  • 定义图像边框 ax=plt.gca() ax.spines[].set_color()
  • 设置刻度位置 ax.xaxis.set_ticks_position()
  • 设置坐标轴位置 ax.spines[].set_position()

参考文献

参考链接:https://matplotlib.org/stable/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355