首页 > 编程知识 正文

matplotlib中文手册,matplotlib的cmap参数

时间:2023-05-06 08:59:33 阅读:41071 作者:3512

(自转) 3359 blog.csdn.net/QQ _ 30815237/article/details/87903024

1、plt.rcParams

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

rc参数允许您更改默认属性,包括表单大小、每英寸点数、线宽、颜色、样式、坐标轴、坐标和网络属性、文本以及字体。 rc参数存储在词典变量中,通过词典方式访问。

代码:

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.line style ' ]='-. '

#设定线宽

PLT.rcparams [ ' lines.line width ' ]=3

绘制sin曲线

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

PLT.savefig(sin.png ) ) )。

plt.show () )

参数:

PLT.rcparams [ ' save fig.dpi ' ]=300 #图像像素

PLT.rcparams['figure.dpi']=分辨率300#

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

#默认像素: [ 6.0,4.0 ],分辨率100,图像大小600400

指定dpi=200,图像大小为1200*800

指定dpi=300,图像大小为1800*1200

PLT.rcparams [ ' figure.fig size ' ]=(8.0,4.0 ) #图像显示大小

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

#Interpolation/resampling是一种插值,是增加或减少数字图像像素数的图像处理方法。

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

打印PLT.AXIS(off ) #图像时不显示坐标轴

2、matshow函数

这是用于绘制矩阵的函数: matplotlib.py plot.mat show (a,fignum=None,**kwargs )

a是矩阵元素绘制为与图像像素相对应的矩阵。

例如,PLT.matshow(mat,cmap=plt.cm.gray )和cmap表示颜色映射方法。

实例:

PLT.plot(a,' r-',linewidth=2,label='train ' )

PLT.plot(b,' b- ',线宽度=3,label='val ' )

PLT.legend(loc='upperright ',fontsize=14 ) #设置位置

PLT.xlabel('trainingsetsize ',fontsize=14 ) #标签

PLT.ylabel('RMSE ',fontsize=14 ) )。

PLT.axis([0、80、0、3] )指示图表的显示范围

设定PLT.x ticks (NP.arange (0,81,step=20 ) )刻度

PLT.y ticks (NP.arange (0,4,step=1) )

和Axes - Subplot - Axis是什么关系

要在matplotlib.pyplot中绘制,必须知道以下概念:

平板电脑/画布:这是与实际平板电脑类似的基本载体,由pyplot.figure )函数创建。 在程序中可以创建多个平板电脑。 具体操作的画板遵循最近的原则(操作在最近调用的平板电脑上实现)。 默认情况下,在内部默认调用py

plot.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。

对比:

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操作遵守就近原则,即作用在最近一次使用的图形区上。

from:https://blog.csdn.net/JasonZhu_csdn/article/details/85860963

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

转自:https://wangyeming.github.io/2018/11/07/matplot-cmap/

画图离不开色彩--说说matplot的cmap

一张好看的图,离不开各种各样的颜色。在matplot中,有一个cmap的概念,通过cmap,我们可以很方便的给多组数据自动分配色彩,画出很好看的图。这篇文章就简单介绍下cmap的概念和用法。

cmap是什么

cmap也就是colormap,可以理解为接受一个数值,输出一个指定的颜色的字典。下面这张图就展示了常见的一些cmap。

可以点击matplot cmap这里,里面有一个demo示例,会画一个包含matplot中所有cmap的图。

这里常见的cmap有:

纯色渐变系列:

比如说画灰度图的话,可以选择Greys这个cmap。

如何在画图中使用cmap

import matplotlib.pyplot as plt

import numpy as np

n = 1024 # data size

X = np.random.normal(0, 1, n) # 每一个点的X值,平均数是0,方差是1

Y = np.random.normal(0, 1, n) # 每一个点的Y值

# 这里我们每个点的颜色和该点的X值+Y值的和相关

color = X + Y

# 使用我们上面说的灰度图

cmap = plt.get_cmap('Greys')

# cmap = plt.cm.Greys #也可以这么写

# 利用normlize来标准化颜色的值

norm = plt.Normalize(vmin=-3, vmax=3)

# 散点图

plt.scatter(X, Y, s=75, alpha=0.5, c=color, cmap=cmap, norm=norm)

plt.xlim(-1.5, 1.5)

plt.xticks(()) # ignore xticks

plt.ylim(-1.5, 1.5)

plt.yticks(()) # ignore yticks

plt.show()

其中,我们用到了matplotlib.colors.Normalize类,比如说我们的颜色对应的值取值范围在[-10, 10]之间和[-1,1]之间肯定是不能套用同一个转换标准的,通过Normalize标准化,我们可以很方便的将我们的实际值合适的分布到color map上。

我们讲colormap换成

cmap = plt.get_cmap('Spectral')

画出来的图的颜色就是下面这样的:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。