python画图colorbar颜色,Python调色板
本文主要介绍Python可视化调色板绘图。文章首先通过导入模块和加载图片的方式介绍全文,有一定的参考价值,有需要的朋友可以参考一下。
00-1010导入模块加载图片绘制图表。
样本照片中有各种颜色。我们会通过Python中的可视化模块和opencv模块来识别照片中的所有颜色元素,并添加到可视化图表的颜色匹配中。
目录
然后按照惯例,第一步是导入模块,用于可视化的模块是matplotlib模块。我们从图片中提取颜色后,会保存在颜色映射表中,所以要使用colormap模块,我们还需要导入它。
将numpy作为np导入
进口熊猫作为pd
将matplotlib.pyplot作为plt导入
将matplotlib.patches作为修补程序导入
将matplotlib.image作为mpimg导入
从PIL进口图片
从matplotlib.offsetbox导入OffsetImage,AnnotationBbox
导入cv2
导入外部颜色
从色彩映射表导入rgb2hex
然后我们先来加载一下图片,代码如下:
输入名称=测试1.png
img=plt.imread(input_name)
plt.imshow(img)
plt.axis(“关”)
plt.show()
output:
选择颜色并将它们整合到一个表格中。
我们调用extcolors模块从图片中提取颜色,输出结果是以RGB形式呈现的颜色。代码如下所示
colors _ x=ext colors . ext _ from _ path(img _ URL,tolerance=12,limit=12)
颜色_x
output:
([((3, 107, 144), 180316),
((17, 129, 140), 139930),
((89, 126, 118), 134080),
((125, 148, 154), 20636),
((63, 112, 126), 18728),
((207, 220, 226), 11037),
((255, 255, 255), 7496),
((28, 80, 117), 4972),
((166, 191, 198), 4327),
((60, 150, 140), 4197),
((90, 94, 59), 3313),
((56, 66, 39), 1669)],
538200)
我们将上述结果整合到一个数据框架数据集,代码如下:.
def color_to_df(输入颜色):
colors _ pre _ list=str(input _ color)。替换((([(, )。拆分(,()[0:-1]
df_rgb=[i.split(),)[0] ) for i in colors_pre_list]
df_percent=[i.split(),)[1]。将colors_pre_list]中的I替换为(),)
#将RGB转换为十六进制颜色
df _ color _ up=[RGB 2 hex(int(I . split(,)[0
].replace("(", "")),
int(i.split(", ")[1]),
int(i.split(", ")[2].replace(")", ""))) for i in df_rgb]
df = pd.DataFrame(zip(df_color_up, df_percent), columns=[c_code, occurence])
return df
我们尝试调用上面我们自定义的函数,输出的结果至DataFrame
数据集当中
df_color = color_to_df(colors_x)df_color
output:
绘制图表
接下来便是绘制图表的阶段了,用到的是matplotlib
模块,代码如下:
fig, ax = plt.subplots(figsize=(90,90),dpi=10)wedges, text = ax.pie(list_precent,
labels= text_c,
labeldistance= 1.05,
colors = list_color,
textprops={fontsize: 120, color:black}
)
plt.setp(wedges, width=0.3)
ax.set_aspect("equal")
fig.set_facecolor(white)
plt.show()
output:
从出来的饼图中显示了每种不同颜色的占比,我们更进一步将原图放置在圆环当中,
imagebox = OffsetImage(img, zoom=2.3)ab = AnnotationBbox(imagebox, (0, 0))
ax1.add_artist(ab)
output:
最后制作一张调色盘,将原图中的各种不同颜色都罗列开来,代码如下:
## 调色盘x_posi, y_posi, y_posi2 = 160, -170, -170
for c in list_color:
if list_color.index(c) <= 5:
y_posi += 180
rect = patches.Rectangle((x_posi, y_posi), 360, 160, facecolor = c)
ax2.add_patch(rect)
ax2.text(x = x_posi+400, y = y_posi+100, s = c, fontdict={fontsize: 190})
else:
y_posi2 += 180
rect = patches.Rectangle((x_posi + 1000, y_posi2), 360, 160, facecolor = c)
ax2.add_artist(rect)
ax2.text(x = x_posi+1400, y = y_posi2+100, s = c, fontdict={fontsize: 190})
ax2.axis(off)
fig.set_facecolor(white)
plt.imshow(bg)
plt.tight_layout()
output:
实战环节
这一块儿是实战环节,我们将上述所有的代码封装成一个完整的函数:
def exact_color(input_image, resize, tolerance, zoom):output_width = resize
img = Image.open(input_image)
if img.size[0] >= resize:
wpercent = (output_width/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((output_width,hsize), Image.ANTIALIAS)
resize_name = resize_+ input_image
img.save(resize_name)
else:
resize_name = input_image
fig.set_facecolor(white)
ax2.axis(off)
bg = plt.imread(bg.png)
plt.imshow(bg)
plt.tight_layout()
return plt.show()
exact_color(test_2.png, 900, 12, 2.5)
output:
到此这篇关于Python 可视化调色盘绘制的文章就介绍到这了,更多相关Python 可视化 内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。