使用三维图描述颜色怎么写

使用三维图描述颜色怎么写,第1张

在进行数据可视化时,对于一元函数f(x)=y数据我们可以使用二维平面图显示,x轴表示自变量,y轴表示函数值;对于二元函数f(x,y)=z数据我们也可以使用三维图可视化,x和y轴表示自变量,z轴表示函数值。由于显示设备的局限性,对于三元函数f(x,y,z)=v数据无法通过增加坐标轴的方式可视化,一个可行的方法是使用x、y和z轴表示自变量,使用数据点的颜色表示函数值。如下图所示:

三维散点图实例

本文实现了如上图所示的三维散点图,颜色表示数值大小,并增加了可以自定义范围的侧边colorbar。

文章第二部分为实现代码及部分注释,第三部分为对部分代码的详细解释,第四部分为参考的文章链接。

二、代码

import matplotlibcolors

import matplotlibticker

import matplotlibpyplot as plt

import random

# 10 初始化数据

# f(x,y,z) = v

# 其中x,y,z为随机数,v=xyz

x = [randomrandint(0,100) for i in range(0,100)]

y = [randomrandint(0,100) for i in range(0,100)]

z = [randomrandint(0,100) for i in range(0,100)]

v = [x[i]y[i]z[i] for i in range(0,100)]

# 11 根据各个点的值(v[]),设置点的颜色值,每个点的颜色使用一个rgb三维的元组表示,例如,若想让点显示为红色,则颜色值为(10,0,0)

# 设置各个点的颜色

# 每个点的颜色值按照colormap("seismic",100)进行设计,其中colormap类型为"seismic",共分为100个级别(level)

min_v = min(v)

max_v = max(v)

color = [pltget_cmap("seismic", 100)(int(float(i-min_v)/(max_v-min_v)100)) for i in v]

# 20 显示三维散点图

# 新建一个figure()

fig = pltfigure()

# 在figure()中增加一个subplot,并且返回axes

ax = figadd_subplot(111,projection='3d')

# 设置colormap,与上面提到的类似,使用"seismic"类型的colormap,共100个级别

pltset_cmap(pltget_cmap("seismic", 100))

# 绘制三维散点,各个点颜色使用color列表中的值,形状为""

im = axscatter(x, y, z, s=100,c=color,marker='')

# 21 增加侧边colorbar

# 设置侧边colorbar,colorbar上显示的值使用lambda方程设置

figcolorbar(im, format=matplotlibtickerFuncFormatter(lambda x,pos:int(x(max_v-min_v)+min_v)))

# 22 增加坐标轴标签

axset_xlabel('x')

axset_ylabel('y')

axset_zlabel('z')

# 23显示

pltshow()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

运行结果如下:

在这里插入描述

三、部分代码解释

1 colormap(颜色)映射设置。

如上图所示,为了通过颜色表示各个点的值需要设定一个合理的值-点颜色映射关系。本文代码中使用"seismic"colormap,同时设置colormap分为100个level。对应代码为:

color = [pltget_cmap("seismic", 100)(int(float(i-min_v)/(max_v-min_v)100)) for i in v]

1

1

在代码中pltget_cmap("seismic",100)会得到一个colormap对象,然后使用pltget_cmap("seismic",100)(x)可以得到对应x级别的颜色代码值。例如:

a = pltget_cmap("seismic",100)(0)

b = pltget_cmap("seismic",100)(100)

print("a:", a)

print("b:", b)

1

2

3

4

1

2

3

4

输出结果为:

a: (00, 00, 03, 10)

b: (05, 00, 00, 10)

1

2

1

2

表示级别0对应的(r,g,b,alpha)颜色值为(00, 00, 03, 10),级别100对应的颜色值为(05, 00, 00, 10)。

如果需要使用其他类型的colormap,可以通过设置colormap名得到不同的效果,详细参考博客python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条。

2 设置三维散点格式

通过设置plot格式:

ax = figadd_subplot(111,projection='3d')

1

1

再使用scatter()函数绘制三维散点图:

im = axscatter(x, y, z, s=100,c=color,marker='')

1

1

其中s=100为设置点的大小、c=color为设置点的颜色,marker=''为设置点的形状(此处为实心圆点)。

3 设置侧边colorbar

根据数据的格式,我们需要设置侧边colorbar显示的数值范围,例如,本例中最小值为825,最大值为784179。代码中使用lambda表达式计算显示的值,默认显示的值为[0,1],因此需要使用lambda公式将显示的值调整到[825,784179]。代码如下:

figcolorbar(im, format=matplotlibtickerFuncFormatter(lambda x,pos:int(x(max_v-min_v)+min_v)))

1

1

另外为了使点的颜色与colorbar颜色对应,需要使用

pltset_cmap(pltget_cmap("seismic", 100))

1

1

使的clormap和colorbar具有同样的类型。

四、参考

[1] MATLAB scatter 画二维/三维散点图时 用颜色表示数值大小 colorbar

[2] 三维散点图加colorbar

[3] python图像处理彩色映射

[4] matplotlib的colorbar自定义刻度范围

[5] Python中lambda的使用

工具:win10系统

步骤:

Adobe Reader装在D盘,D:\Program Files\Adobe\Reader 110\Resource\CMap,首先在D盘打开文件的属性。

点击安全选型卡,可以看到,everyone没有完全控制的权限。

然后在下方的完全控制点击,完成勾选状态。

之后,连续点击确定,直至属性对话框消失。然后,点击删除,即可删除该文件。

:LINUX

一、首先,安装这些东西吧:apt-get install tetex-bin tetex-base tetex-extra cjk-latex

dvipdfm-cjk-cmap dvipdfm-cjk dvipdfm texmf-zh gbkfonts gs-cjk-resource,最好还有texlive的那一部分,反正我是装了的。

二、然后是那几个sim的字体,最好把它安装在你的Debian里面(我的Debian安了好几个漂亮的字体,当然包括这几个基本的sim字体)。

接下来,去王垠那下载gbkfonts,主要是那个静态链接文件,直接把它放在/usr/bin里面,然后你就可以生成字体了:

$mkdir texmf-local

$cd texmf-local

$gbkfonts /usr/share/fonts/truetype/microsoft/simsunttf song

$gbkfonts /usr/share/fonts/truetype/microsoft/simheittf hei

那几个sim字体都这样处理,这个过程最好是普通用户的权限来执行。

三、下面为dvips设置字体

$mkdir dvips/config

$mv cjkmap dvips/

$cp /usr/share/texmf/dvips/config/config dvips/config/

添加一个文件configcjk,内容是p +cjkmap

四、pdftex设置字体

这时,我的pdftex字体已经可以了,如果你的还不行的话,按下面的做:

$cp /usr/share/texmf/pdftex/config/pdftexcfg pdftex/config/

$cat pdftexcfg >> pdftex/config/pdftexcfg

五、更新字体数据库

换root来做:

#cp -r texmf-local /usr/local/share/texmf

#mkdir /usr/local/share/texmf/fonts/truetype

#cd /usr/local/share/texmf/fonts/truetype

#cp /usr/share/fonts/truetype/microsoft/sim /

当然,这里的最后一步,你也可以用软链接来做,ln -s 。

2018-05-04 11:11:36

122点赞

qiurisiyu2016

码龄7年

关注

matplotlib

1、pltplot(x,y)

pltplot(x,y,format_string,kwargs) 

x轴数据,y轴数据,format_string控制曲线的格式字串 

format_string 由颜色字符,风格字符,和标记字符

import matplotlibpyplot as plt

pltplot([1,2,3,6],[4,5,8,1],’g-s’) 

pltshow()

结果

kwards: 

color 颜色 

linestyle 线条样式 

marker 标记风格 

markerfacecolor 标记颜色 

markersize 标记大小 等等 

pltplot([5,4,3,2,1])   

pltshow()

结果

pltplot([20,2,40,6,80])   #缺省x为[0,1,2,3,4,]

pltshow()

结果

pltplot()参数设置

Property Value Type

alpha 控制透明度,0为完全透明,1为不透明

animated [True False]

antialiased or aa [True False]

clip_box a matplotlibtransformBbox instance

clip_on [True False]

clip_path a Path instance and a Transform instance, a Patch

color or c 颜色设置

contains the hit testing function

dash_capstyle [‘butt’ ‘round’ ‘projecting’]

dash_joinstyle [‘miter’ ‘round’ ‘bevel’]

dashes sequence of on/off ink in points

data 数据(nparray xdata, nparray ydata)

figure 画板对象a matplotlibfigureFigure instance

label 图示

linestyle or ls 线型风格[‘-’ ‘–’ ‘-’ ‘:’ ‘steps’ …]

linewidth or lw 宽度float value in points

lod [True False]

marker 数据点的设置[‘+’ ‘,’ ‘’ ‘1’ ‘2’ ‘3’ ‘4’]

markeredgecolor or mec any matplotlib color

markeredgewidth or mew float value in points

markerfacecolor or mfc any matplotlib color

markersize or ms float

markevery [ None integer (startind, stride) ]

picker used in interactive line selection

pickradius the line pick selection radius

solid_capstyle [‘butt’ ‘round’ ‘projecting’]

solid_joinstyle [‘miter’ ‘round’ ‘bevel’]

transform a matplotlibtransformsTransform instance

visible [True False]

xdata nparray

ydata nparray

zorder any number

确定x,y值,将其打印出来

x=nplinspace(-1,1,5)

y=2x+1

pltplot(x,y)

pltshow()

2、pltfigure()用来画图,自定义画布大小

fig1 = pltfigure(num='fig111111', figsize=(10, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#0000FF')

pltplot(x,y1)           #在变量fig1后进行pltplot *** 作,图形将显示在fig1中

fig2 = pltfigure(num='fig222222', figsize=(6, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#FF0000')

pltplot(x,y2)           #在变量fig2后进行pltplot *** 作,图形将显示在fig2中

pltshow()

pltclose()

结果

fig1 = pltfigure(num='fig111111', figsize=(10, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#0000FF')

pltplot(x,y1)

pltplot(x,y2)

fig2 = pltfigure(num='fig222222', figsize=(6, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#FF0000')

pltshow()

pltclose()

结果:

3、pltsubplot(222)

将figure设置的画布大小分成几个部分,参数‘221’表示2(row)x2(colu),即将画布分成2x2,两行两列的4块区域,1表示选择图形输出的区域在第一块,图形输出区域参数必须在“行x列”范围                       ,此处必须在1和2之间选择——如果参数设置为subplot(111),则表示画布整个输出,不分割成小块区域,图形直接输出在整块画布上

pltsubplot(222) 

pltplot(y,xx)    #在2x2画布中第二块区域输出图形

pltshow()

pltsubplot(223)  #在2x2画布中第三块区域输出图形

pltplot(y,xx)

pltsubplot(224)  # 在在2x2画布中第四块区域输出图形

pltplot(y,xx)

4、pltxlim设置x轴或者y轴刻度范围

pltxlim(0,1000)  #  设置x轴刻度范围,从0~1000         #lim为极限,范围

pltylim(0,20)   # 设置y轴刻度的范围,从0~20

5、pltxticks():设置x轴刻度的表现方式

fig2 = pltfigure(num='fig222222', figsize=(6, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#FF0000')

pltplot(x,y2)

pltxticks(nplinspace(0,1000,15,endpoint=True))  # 设置x轴刻度

pltyticks(nplinspace(0,20,10,endpoint=True))

结果

6、ax2set_title('xxx')设置标题,画图

#产生[1,2,3,,9]的序列

x = nparange(1,10)

y = x

fig = pltfigure()

ax1 = figadd_subplot(221)

#设置标题

ax1set_title('Scatter Plot1')

pltxlabel('M')

pltylabel('N')

ax2 = figadd_subplot(222)

ax2set_title('Scatter Plot2clf')

#设置X轴标签

pltxlabel('X')           #设置X/Y轴标签是在对应的figure后进行 *** 作才对应到该figure

#设置Y轴标签

pltylabel('Y')

#画散点图

ax1scatter(x,y,c = 'r',marker = 'o')          #可以看出画散点图是在对figure进行 *** 作

ax2scatter(x,y,c = 'b',marker = 'x')

#设置图标

pltlegend('show picture x1 ')

#显示所画的图

pltshow()

结果

7、plthist()绘制直方图(可以将高斯函数这些画出来)

绘图都可以调用matplotlibpyplot库来进行,其中的hist函数可以直接绘制直方图

调用方式:

n, bins, patches = plthist(arr, bins=10, normed=0, facecolor='black', edgecolor='black',alpha=1,histtype='bar')

hist的参数非常多,但常用的就这六个,只有第一个是必须的,后面四个可选

arr: 需要计算直方图的一维数组

bins: 直方图的柱数,可选项,默认为10

normed: 是否将得到的直方图向量归一化。默认为0

facecolor: 直方图颜色

edgecolor: 直方图边框颜色

alpha: 透明度

histtype: 直方图类型,‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’

返回值 :

n: 直方图向量,是否归一化由参数normed设定

bins: 返回各个bin的区间范围

patches: 返回每个bin里面包含的数据,是一个list

from skimage import data

import matplotlibpyplot as plt

img=datacamera()

pltfigure("hist")

arr=imgflatten()

n, bins, patches = plthist(arr, bins=256, normed=1,edgecolor='None',facecolor='red')  

pltshow()

例:

mu, sigma = 0, 1

s = nprandomnormal(loc=mu, scale=sigma, size=1000)

a,b,c = plthist(s, bins=3)

print("a: ",a)

print("b: ",b)

print("c: ",c)

pltshow()

结果:

a:  [ 85 720 195]         #每个柱子的值

b:  [-036109509 -01357318   008963149  031499478]   #每个柱的区间范围

c:  <a list of 3 Patch objects>       #总共多少柱子

8、ax1scatter(x,y,c = 'r',marker = 'o') 

使用注意:确定了figure就一定要确定象限,然后用scatter,或者不确定象限,直接使用pltscatter

x = nparange(1,10)

y = x

fig = pltfigure()

a=pltsubplot()            #默认为一个象限

# a=figadd_subplot(222)

ascatter(x,y,c='r',marker='o')

pltshow()

结果

x = nparange(1,10)

y = x

pltscatter(x,y,c='r',marker='o')

pltshow()

结果

import numpy as np

import matplotlibpyplot as plt

x = nparange(1,10)

y = x

pltfigure()

pltscatter(x,y,c='r',marker='o')

pltshow()

结果

文章知识点与官方知识档案匹配

Python入门技能树基础语法函数

211242 人正在系统学习中

打开CSDN APP,看更多技术内容

plt的一些函数的使用_班花i的博客_plt函数

plt函数 Fwuyi的博客 6513 1pltfigure( )函数:创建画布 2pltplot(x, y, format_string, label="图例名"):绘制点和线, 并控制样式。 其中x是x轴数据,y是y轴数据,xy一般是列表和数组。format_string 是字符串的格式包括线

继续访问

Python的数据科学函数包(三)——matplotlib(plt)_hxxjxw的博客

import matplotlibpyplot as plt pltimshow(img) pltshow() pltimshow()有一个cmap参数,即指定颜色映射规则。默认的cmap即颜料板是十色环 哪怕是单通道图,值在0-1之间,用pltimshow()仍然可以显示彩色图,就是因为颜色映射的关

继续访问

对Python中plt的画图函数详解

今天小编就为大家分享一篇对Python中plt的画图函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

pltplot()函数详解

pltplot()函数详细介绍 pltplot(x, y, format_string, kwargs) 参数 说明 x X轴数据,列表或数组,可选 y Y轴数据,列表或数组 format_string 控制曲线的格式字符串,可选 kwargs 第二组或更多(x,y,format_string),可画多条曲线 format_string 由颜色字符、风格字符、标记字符组成 颜色字符 'b' 蓝色 'm' 洋红色 magenta 'g' 绿色 'y

继续访问

python图像处理基础知识(plt库函数说明)_小草莓爸爸的博客_p

1画图(plt库)11 pltfigure(num=’’,figsize=(x, y),dpi= ,facecolor=’’,edgecolor=’’)num:表示整个图标的标题 figsize:表示尺寸 facecolor:表示12 pltplot(x,y,format_string,kwargs)

继续访问

plt的一些函数使用_neo3301的博客_plt函数

1、pltplot(x,y) pltplot(x,y,format_string,kwargs) x轴数据,y轴数据,format_string控制曲线的格式字串 format_string 由颜色字符,风格字符,和标记字符 import matplotlibpyplot as plt

继续访问

最新发布 python plt 绘图详解(plt版本)

python plt绘图详解

继续访问

python图像处理基础知识(plt库函数说明)

import matplotlibpyplot as plt的一些基础用法,包括直方图

继续访问

pltsubplot() 函数解析_Ensoleile。的博客_pltsubplot

pltsubplot()函数用于直接制定划分方式和位置进行绘图。 函数原型 subplot(nrows, ncols, index, kwargs),一般我们只用到前三个参数,将整个绘图区域分成 nrows 行和 ncols 列,而 index 用于对子图进行编号。

继续访问

中plt的画图函数_Ethan的博客的博客_python的plt函数

1、pltlegend pltlegend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应方式) 'upper right' : 1, 'upper left' : 2, 'lower left' : 3, 'lower right' : 4,

继续访问

plt函数

1 pltfigure( ) 函数:创建画布 2 pltplot(x, y, format_string, label="图例名"):绘制点和线, 并控制样式。 其中x是x轴数据,y是y轴数据,xy一般是列表和数组。format_string 是字符串的格式包括线条颜色、点类型、线类型三个部分。向参数label传入图例名,使用pltlegend( )创建图例。 21 画一条含x、y的线条 import matplotlibpyplot as plt x = [1, 2, 3, 4] y

继续访问

Python深度学习入门之plt画图工具基础使用(注释详细,超级简单)

Python自带的plt是深度学习最常用的库之一,在发表文章时必然得有图作为支撑,plt为深度学习必备技能之一。作为深度学习入门,只需要掌握一些基础画图 *** 作即可,其他等要用到的时候看看函数API就行。 1 导入plt库(名字长,有点难记) import matplotlibpyplot as plt 先随便画一个图,保存一下试试水: pltfigure(figsize=(12,8), dpi=80) pltplot([1,2,6,4],[4,5,6,9]) pltsavefig('/plt_pn

继续访问

python画图plt函数学习_dlut_yan的博客_python plt

figure()函数可以帮助我们同时处理生成多个图,而subplot()函数则用来实现,在一个大图中,出现多个小的子图。 处理哪个figure,则选择哪个figure,再进行画图。 参考博客 importmatplotlibpyplotaspltimportnumpyasnp x=nparange(-1,1,01

继续访问

pltplot()函数_安之若醇的博客_pltplot()函数

pltplot()函数是matplotlibpyplot用于画图的函数传一个值列表:import numpy as npimport matplotlibpyplot as pltt=[1,2,3,4,5]y=[3,4,5,6,7]pltplot(t, y)当x省略的时候,默认[0,1…,N-1]递增可以传元组也可以传

继续访问

python画图plt函数学习

python中的绘图工具 :matplotli,专门用于画图。 一 安装与导入 工具包安装:conda install matplotli 导入:import matplotlibpyplot as plt 画图主要有:列表绘图;多图绘图;数组绘图 二 列表绘图 1 基础绘图:pltplot;pltshow import matplotlibpyplot as plt x = [1, 2, 3, 4] y = [1, 4, 9, 16] pltplot(x, y) pltshow()

继续访问

python中plt的含义_对Python中plt的画图函数详解

1、pltlegendpltlegend(loc=0)#显示图例的位置,自适应方式说明:'best' : 0, (only implemented for axes legends)(自适应方式)'upper right' : 1,'upper left' : 2,'lower left' : 3,'lower right' : 4,'right' : 5,'cent

继续访问

Python中plt绘图包的基本使用方法

其中,前两个输入参数表示x轴和y轴的坐标,plot函数将提供的坐标点连接,即成为要绘制的各式线型。常用的参数中,figsize需要一个元组值,表示空白画布的横纵坐标比;pltxticks()和pltyticks()函数用于设置坐标轴的步长和刻度。pltxlabel()、pltylabel()和plttitle()函数分别用于设置x坐标轴、y坐标轴和图标的标题信息。的数据处理时,发现了自己对plt的了解和使用的缺失,因此进行一定的基础用法的学习,方便之后自己的使用,而不需要频繁的查阅资料。

继续访问

python-pltxticks与pltyticks

栗子: pltfigure(figsize=(10, 10)) for i in range(25): pltsubplot(5, 5, i+1) pltxticks([]) pltyticks([]) pltgrid(False) pltimshow(train_images[i], cmap=pltcmbinary) pltxlabel(class_names[train_labels[i]]) pltshow() 设置x或y轴对应显

继续访问

plt绘图总结

matplotlib绘图

继续访问

Python的数据科学函数包(三)——matplotlib(plt)

>

以上就是关于使用三维图描述颜色怎么写全部的内容,包括:使用三维图描述颜色怎么写、win10系统中怎么删除Adobe Reader残余文件夹CMap、pdftex无法编译中文等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9291621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存