show函数的作用是什么python_matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)...

1、plt.rcParams

plt(matplotlib.pyplot)使用rc配置文件来自定义图形的各种默认属性,称之为“rc配置”或“rc参数”。

通过rc参数可以修改默认的属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。rc参数存储在字典变量中,通过字典的方式进行访问。

45c2fc31d2308e4b8e628236b479dfe6.png

代码:

import numpy as np

import matplotlib.pyplot as plt

###%matplotlib inline #jupyter可以用,这样就不用plt.show()

#生成数据

x = np.linspace(0, 4*np.pi)

y = np.sin(x)

#设置rc参数显示中文标题

#设置字体为SimHei显示中文

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

#设置正常显示字符

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

plt.title('sin曲线')

#设置线条样式

plt.rcParams['lines.linestyle'] = '-.'

#设置线条宽度

plt.rcParams['lines.linewidth'] = 3

#绘制sin曲线

plt.plot(x, y, label='$sin(x)$')

plt.savefig('sin.png')

plt.show()

038ab2d253761cce506d6d3085a99ec3.png

参数:

plt.rcParams['savefig.dpi'] = 300 #图片像素

plt.rcParams['figure.dpi'] = 300 #分辨率

plt.savefig(‘plot123_2.png', dpi=200)#指定分辨率

# 默认的像素:[6.0,4.0],分辨率为100,图片尺寸为 600&400

# 指定dpi=200,图片尺寸为 1200*800

# 指定dpi=300,图片尺寸为 1800*1200

plt.rcParams['figure.figsize'] = (8.0, 4.0) # 图像显示大小

plt.rcParams['image.interpolation'] = 'nearest' # 最近邻差值: 像素为正方形

#Interpolation/resampling即插值,是一种图像处理方法,它可以为数码图像增加或减少象素的数目。

plt.rcParams['image.cmap'] = 'gray' # 使用灰度输出而不是彩色输出

plt.axis('off') #打印图片的时候不显示坐标轴

from:https://www.jb51.net/article/203481.htm

更详细的配置参见:https://my.oschina.net/swuly302/blog/94805

2、matshow函数

这是一个绘制矩阵的函数:matplotlib.pyplot.matshow(A, fignum=None, **kwargs)

A是绘制的矩阵,一个矩阵元素对应一个图像像素。

例如:plt.matshow(Mat,  cmap=plt.cm.gray),cmap代表一种颜色映射方式。

2c752b4090ee93cd9a511508cb603b97.png

实例:

plt.plot(A, "r-+", linewidth=2, label="train")

plt.plot(B, "b-", linewidth=3, label="val")

plt.legend(loc="upper right", fontsize=14) # 设置位置

plt.xlabel("Training set size", fontsize=14) # 标签

plt.ylabel("RMSE", fontsize=14)

plt.axis([0, 80, 0, 3])#表示要显示图形的范围

plt.xticks(np.arange(0, 81, step=20))#设置刻度

plt.yticks(np.arange(0, 4, step=1))

49b5045968adf113b5f23b71d2e3930f.png

Axes - Subplot - Axis 之间到底是个什么关系

用matplotlib.pyplot绘图需要知道以下几个概念:

画图板/画布:这是一个基础载体,类似实际的画图板,用pyplot.figure()函数创建,程序中允许创建多个画图板,具体操作的画板遵循就近原则(操作是在最近一次调用的画图板上实现),缺省条件下内部默认调用pyplot.figure(1)。

图形区/绘图区:用来绘图的实际区域,一般不直接获取,直接设定方式为pyplot.axes([x, y, w, h]),即axes函数直接确定了该区域在画图板/画布中的位置为x,y 尺寸为w,h

标签区:用来展示图形相关标签的地方,一般不直接设定(未仔细研究过),该区域根据图形区进行扩展,与该区域有关联的函数是pyplot.xlabel()、pyplot.ylabel()、pyplot.title()等

fig = plt.figure()

plt.show()

ax1 = fig.add_subplot(211)

ax2 = fig.add_subplot(212)

用画板和画纸来做比喻的话,figure就好像是画板,是画纸的载体, 但是具体画画等操作是在画纸上完成的。 在pyplot中,画纸的概念对应的就是Axes/Subplot。

46e13e29a833d1d6b8a14a5930168fa1.png

对比:

figure (1) VS figure()

figure()操作就是创建或者调用画图板,缺省情况下系统会创建figure(1)作为画图板。使用时遵循就近原则,所有画图操作是在最近一次调用的画图板上实现。

axes() VS subplot()

pyplot.axes([x, y, w, h])是用来在画图板上确认图形区的位置和大小的函数,x,y表示图形区左下角相对于画图板的坐标,w,h表示图形区的宽高。(缺省时该操作在figure(1)上操作)

pyplot.subplot(abc)本质也是用来确认图形区在画图板上位置大小的函数,区别是该函数将画图板按a行b列等分,然后逐行编号,并选择编号为c的区域作为图形区用来绘图。这是一个axes()操作的高级封装,方便用户使用。subplot(233)表示2行3列的第3个位置(即,第1行第三个区域)

同时,pyplot.show()实际展示的区域是画图板上所有图形区的最小包围区,不是整个画图板,即如果仅仅调用了subplot(224)结果只展示右下角的4号区域,而不是1、2、3、4都展示,因此会存在一定的错觉。

axes() VS axis()

axes([x, y, w, h])用来设定图形区;

axis([x_left, x_right, y_bottom, y_top])是用来设置所绘制图形的视窗大小的,表示直接展示的图形是需要满足参数中范围的值,直观表现是绘图区实际展示的坐标范围。

注:axis作用的图形区依旧遵守就近原则。

subplot() VS plot()

subplot用来生成图形区;

plot是实际使用的绘图函数,类似的函数还有hist等,plot操作遵守就近原则,即作用在最近一次使用的图形区上。

官网:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html

到此这篇关于matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)的文章就介绍到这了,更多相关matplotlib plt.rcParams、matshow内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

本文地址: http://www.cppcns.com/jiaoben/python/372680.html

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`plt.rcParams['font.family']` 是用于设置 matplotlib 库中的字体家族的参数。matplotlib 使用字体家族来确定在绘图中使用的字体样式。 具体而言,`plt.rcParams['font.family']` 是一个全局的参数,用于指定在绘图中使用的字体家族。默认情况下,它通常设置为 `'sans-serif'`,即无衬线字体家族。这意味着在绘图中所使用的字体将是没有衬线(serifs)的字体。 你可以通过修改 `plt.rcParams['font.family']` 参数来改变绘图中的字体家族。例如,如果你想要使用衬线字体家族,你可以将其设置为 `'serif'`。如果你想要使用特定的字体,你可以将其设置为字体的名称,如 `'Times New Roman'`。 下面是一个示例: ```python import matplotlib.pyplot as plt # 设置字体家族为 'serif' plt.rcParams['font.family'] = 'serif' # 绘制图形 plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) plt.xlabel('X轴') plt.ylabel('Y轴') plt.title('示例图形') plt.grid(True) plt.show() ``` 在这个示例中,我们将 `plt.rcParams['font.family']` 设置为 `'serif'`,以改变绘图中的字体家族。然后我们绘制了一个简单的线图,并设置了其他一些属性,如坐标轴标签、标题和网格线。运行程序后,你将看到使用衬线字体家族的绘图结果。 请注意,`plt.rcParams['font.family']` 是一个全局参数,它会影响到整个 matplotlib 库中的字体样式。如果你只想对特定的文本绘制使用不同的字体家族,你可以在对应的文本绘制函数使用 `fontname` 参数来指定字体名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值