Python 使用matplotlib使用并自定义colormap

0.前言

添加colormap的对象是灰度图,可以变成热量图,从而更加明显的发现一些规律,适用于一些雷达图像等

from PIL import Image
# 将彩色图片转换成黑白图片
im=Image.open("./pic.jpg").convert('L')
# 保存图片
im.save("image.jpg")

1.从灰色图片中读取数据,转换成colormap图

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib as mpl
from PIL import Image
import numpy as np

# 自定义colormap
def colormap():
    return mpl.colors.LinearSegmentedColormap.from_list('cmap', ['#FFFFFF', '#98F5FF', '#00FF00', '#FFFF00','#FF0000', '#8B0000'], 256)

# 读取灰度图
data=mpimg.imread('./gray.jpg')
# 如果需要固定colorbar的范围,可以设置参数vmin,vmax,具体参考
                                  #http://matplotlib.org/api/image_api.html

# 设定每个图的colormap和colorbar所表示范围是一样的,即归一化 
plt.imsave('colormap.jpg',data, cmap=colormap())

这里没有显示出来colorbar的数值分布,得到的图像是等大的

2.从txt文本中读取二维数据,转换成自定义colormap图


#python 3
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.colors as colors


# load data
def loaddata(i):  # 文件编号
    path = './input/data/trainPingliu/trainPingliu%d.txt' % i
    data = np.loadtxt(path)
    return data


# 生成图片格式自定义
def colormap():
    # 白青绿黄红
    cdict = ['#FFFFFF', '#9ff113', '#5fbb44', '#f5f329', '#e50b32']
    # 按照上面定义的colordict,将数据分成对应的部分,indexed:代表顺序
    return colors.ListedColormap(cdict, 'indexed')


# for i in range(1, 10000):
# 加载数据
data = loaddata(1)
fig = plt.figure()
# 加载图片设置
my_cmap = colormap()

# 第一个子图,按照默认配置
ax = fig.add_subplot(221)
ax.imshow(data)

# 第二个子图,使用api自带的colormap
ax = fig.add_subplot(222)
cmap = mpl.cm.bwr  # 蓝,白,红
ax.imshow(data, cmap=cmap)

# 第三个子图增加一个colorbar
ax = fig.add_subplot(223)
cmap = mpl.cm.winter # 冬季风格
im = ax.imshow(data, cmap=my_cmap)
plt.colorbar(im)  # 增加colorbar

# 第四个子图可以调整colorbar
ax = fig.add_subplot(224)
cmap = mpl.cm.rainbow
# 这里设置colormap的固定值
norm = mpl.colors.Normalize(vmin=-1, vmax=1)
im=ax.imshow(data,cmap=cmap)
plt.colorbar(im,cmap=cmap, norm=norm,ticks=[-1,0,1])


# 显示
plt.show()
  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 当您使用matplotlib绘制散点图时,可以使用参数c指定散点的颜色。下面是一个示例代码,使用Pythonmatplotlib绘制散点图并修改散点的颜色。 ```python import matplotlib.pyplot as plt # 生成数据 x = [1, 2, 3, 4, 5] y = [2, 3, 1, 5, 4] # 绘制散点图,并指定颜色 plt.scatter(x, y, c='r') # 显示图形 plt.show() ``` 在上面的代码中,我们通过调用`scatter`函数绘制了一个散点图。`scatter`函数有很多可选参数,其中`c`参数指定散点的颜色。在这个例子中,我们将颜色设置为红色。 如果您想使用其他颜色,可以使用字符串表示法(例如'r'表示红色)或RGB元组表示法(例如(0.5, 0.2, 0.1)表示一种深棕色)。例如,要将散点的颜色更改为蓝色,您可以这样做: ```python plt.scatter(x, y, c='b') ``` 您也可以根据数据点的值来设置颜色。例如,如果您想根据y值设置颜色,可以使用以下代码: ```python plt.scatter(x, y, c=y) ``` 在这个例子中,我们将c参数设置为y,这意味着颜色将根据y的值而变化。由于y的值介于1到5之间,因此散点的颜色也将在这个范围内变化。 ### 回答2: Python使用matplotlib库可以轻松绘制散点图,并且可以通过修改点的颜色来增加图像的可读性和美观度。 首先,我们需要导入matplotlib库中的pyplot模块,用于绘制图像。 ```python import matplotlib.pyplot as plt ``` 接下来,我们创建两个列表,分别存储散点图的横坐标和纵坐标数据。 ```python x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] ``` 然后,使用scatter()函数绘制散点图。该函数的第一个参数是横坐标数据,第二个参数是纵坐标数据。 ```python plt.scatter(x, y) ``` 默认情况下,散点图上的点是蓝色的。如果我们想要修改点的颜色,可以使用c参数指定一个颜色。颜色可以是一个单个的字符、一个具体的颜色名称、或者一个表示颜色的数字。 ```python plt.scatter(x, y, c='red') ``` 此外,我们还可以使用colormap参数指定一组颜色,让散点图上的点呈现渐变的色彩变化。例如,我们可以使用'cool' colormap来绘制渐变的蓝色散点图。 ```python plt.scatter(x, y, c=y, cmap='cool') ``` 最后,通过调用show()函数显示绘制好的散点图。 ```python plt.show() ``` 综上所述,以上代码示例展示了如何使用matplotlib库绘制散点图,并修改点的颜色。无论是单色还是渐变色,通过修改颜色可以增加图像的可读性和美观度。 ### 回答3: 使用Python中的matplotlib库可以很方便地绘制散点图,并且可以通过修改点的颜色来实现。下面是一个示例代码: ``` import matplotlib.pyplot as plt # 输入散点数据 x = [1, 2, 3, 4, 5] y = [2, 4, 5, 5, 7] # 绘制散点图 plt.scatter(x, y) # 修改点的颜色 colors = ['red', 'blue', 'green', 'yellow', 'purple'] # 定义点的颜色,这里使用了五种颜色 plt.scatter(x, y, c=colors) # 显示图形 plt.show() ``` 在上述代码中,首先定义了散点图的数据,即x和y的值。然后使用`plt.scatter()`函数绘制散点图,并且没有指定点的颜色,因此默认使用了蓝色。接下来,定义了一个长度为5的颜色列表,每个点对应一个颜色。最后,再次使用`plt.scatter()`函数,通过设置`c`参数为颜色列表,来对散点图中的点进行着色。最后,使用`plt.show()`函数显示图形。 运行上述代码,将会得到一个散点图,其中每个点的颜色分别为红色、蓝色、绿色、黄色和紫色。你也可以根据需要对点的颜色进行自定义

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值