全国工商信息公示系统/黄山seo推广

全国工商信息公示系统,黄山seo推广,智能营销系统,如今做那些网站能致富在前述学习过程中,我们已经通过官网学习了如何绘制渐变的柱状图及其背景。 掌握一门技能的最佳检验方式就是通过实战,因此,本文尝试做一些渐变设计。 前述学习记录可查看链接: Python画图|渐变背景-CSDN博客 【1】柱状图渐变 …

在前述学习过程中,我们已经通过官网学习了如何绘制渐变的柱状图及其背景。

掌握一门技能的最佳检验方式就是通过实战,因此,本文尝试做一些渐变设计。

前述学习记录可查看链接:

Python画图|渐变背景-CSDN博客

 【1】柱状图渐变

在上一篇文章中,由于代码太长,对单个函数的解读不够详细,在本文中可以详细展开。

首先将背景渐变的代码改为注释,原因为:

【a】所有渐变都使用了gradient_image()函数;

【b】gradient_bar()函数通过调用gradient_image()函数画出了渐变的柱状图;

【c】调用gradient_image()函数单独定义了背景渐变。

因此,在不对代码进行修改的前提下,最快速的更改就是把背景渐变的代码消除:

# background image
#gradient_image(ax, direction=1, extent=(0, 1, 0, 1), transform=ax.transAxes,#cmap=plt.cm.RdYlGn, cmap_range=(0.2, 0.9), alpha=0.5) #调用了子函数

此时的输出结果为:

图1

由图1可见,坐标轴区域内部已经改为纯色,仅柱状图变成渐变颜色。

然后尝试修改颜色,将柱状图的渐变色改为cmap由plt.cm.Blues_r改为plt.cm.Blues,此时的输出结果为:

图2

对比图1和图2可见,渐变的方向进行了交换。

【2】渐变代码解读

经过追溯, gradient_bar()函数和gradient_image()函数的构造和使用基本上都参考了ax.imshow()函数。

【2.1】ax.imshow()函数

因,在实施渐变以前,有必要先学习ax.imshow()函数:

https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.imshow.html#matplotlib.axes.Axes.imshow

Axes.imshow(X, cmap=None, norm=None, *, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, interpolation_stage=None, filternorm=True, filterrad=4.0, resample=None, url=None, data=None, **kwargs)

ax.imshow()包含参数意义如下:

X:画图数据依据

cmap:颜色参数

norm:标准化工具,将cmap数据缩放到(0,1)范围

aspect:设定坐标轴的长宽比

interpolation:插值设置

alpha:透明度设置

origin:设定数组的起点在左下角还是左上角

extent:边界框

interpolation_stage:插值范围

filternorm:图像粒度调整

filterrad=与差值先关

其余如resample、url、data=None和**kwargs不常用,暂无需关注。

【2.2】gradient_bar()函数

基于此,我们尝试解读下述代码:

def gradient_bar(ax, x, y, width=0.5, bottom=0): #自定义函数for left, top in zip(x, y):right = left + width #右边等于左边加宽度,这是要逐个排列的意思gradient_image(ax, extent=(left, right, bottom, top),cmap=plt.cm.Blues##, cmap_range=(0.2, 0.9)

第一行:

def gradient_bar(ax, x, y, width=0.5, bottom=0): #自定义函数

其中的ax,x,y均为外部输入变量, width=0.5, bottom=0为内部已经完成定义的变量。

for函数对x和y组成的组合数组进行取值。

right是内部变量,left+width代表着柱状图不断右移。

gradient_image()函数在此处被直接调用,调用的时候只需要外部输入ax,其余参数如extent、cmap和cmap_range都已经提前完成了赋值。

【2.3】gradient_image()函数

基于前述分析,我们尝试解读下述代码:

# background image
gradient_image(ax, direction=1, extent=(0, 1, 0, 1), transform=ax.transAxes,cmap=plt.cm.RdYlGn, cmap_range=(0.2, 0.9), alpha=0.5) #调用了子函数

这里是对gradient_image()函数的直接调用,几乎所有参数都已经解读过,稍有变化的是里面多了一个transform参数,这里的transform=ax.transAxes就是把ax值转化为Axes值 ,顺直坐标轴画直方图的意思。

【3】渐变调控

根据前述分析已经知晓,柱状图渐变和背景渐变可以分别设置,因此,此处尝试消除柱状图渐变,然后恢复背景渐变。

【3.1】柱状图渐变

消除柱状图渐变,最快的方式是将cmap_range的赋值改成一致的即可:

def gradient_bar(ax, x, y, width=0.5, bottom=0): #自定义函数for left, top in zip(x, y):right = left + width #右边等于左边加宽度,这是要逐个排列的意思gradient_image(ax, extent=(left, right, bottom, top),cmap=plt.cm.Blues, cmap_range=(0.8, 0.8))

此时的输出图像为:

图3

【3.2】背景渐变

消除背景图渐变,最快的方式也是将cmap_range的赋值改成一致的即可:

# background image
gradient_image(ax, direction=1, extent=(0,1,0, 1), transform=ax.transAxes,cmap=plt.cm.RdYlGn, cmap_range=(0.9, 0.9), alpha=0.5) #调用了子函数

 此时的输出图像为:

图4

至此,所有渐变已经消除。

至此的完整代码为:

import matplotlib.pyplot as plt  # 引入matplotlib模块画图
import numpy as np  # 引入numpy模块做数学计算np.random.seed(19680801) #定义随机数种子def gradient_image(ax, direction=0.3, cmap_range=(0, 1), **kwargs): #自定义函数"""Draw a gradient image based on a colormap.Parameters----------ax : AxesThe Axes to draw on.direction : floatThe direction of the gradient. This is a number inrange 0 (=vertical) to 1 (=horizontal).cmap_range : float, floatThe fraction (cmin, cmax) of the colormap that should beused for the gradient, where the complete colormap is (0, 1).**kwargsOther parameters are passed on to `.Axes.imshow()`.In particular, *cmap*, *extent*, and *transform* may be useful."""phi = direction * np.pi / 2 #定义因变量,从np.pi可以看出这是一个角度变量v = np.array([np.cos(phi), np.sin(phi)]) #定义数组,包括正弦值和余弦值X = np.array([[v @ [1, 0], v @ [1, 1]],[v @ [0, 0], v @ [0, 1]]]) #这里的@是矩阵乘法a, b = cmap_range #定义变量a和bX = a + (b - a) / X.max() * X #定义变量Xim = ax.imshow(X, interpolation='bicubic', clim=(0, 1),aspect='auto', **kwargs) #定义变量imreturn im #返回imdef gradient_bar(ax, x, y, width=0.5, bottom=0): #自定义函数for left, top in zip(x, y):right = left + width #右边等于左边加宽度,这是要逐个排列的意思gradient_image(ax, extent=(left, right, bottom, top),cmap=plt.cm.Blues, cmap_range=(0.8, 0.8))fig, ax = plt.subplots()
ax.set(xlim=(0, 10), ylim=(0, 1))# background image
gradient_image(ax, direction=1, extent=(0,1,0, 1), transform=ax.transAxes,cmap=plt.cm.RdYlGn, cmap_range=(0.9, 0.9), alpha=0.5) #调用了子函数N = 10 #定义常量10
x = np.arange(N) + 0.15 #使用随机变量参与运算制造变量x
y = np.random.rand(N) #定义随机矩阵
gradient_bar(ax, x, y, width=0.7) #画随机柱状图
plt.show() #输出图形

【4】坐标轴外背景颜色设置

在前述学习过程中,已经讨论了坐标轴以外的颜色设置,详见下述链接:

python画图|图像背景颜色设置-CSDN博客

此处的渐变仅仅涉及坐标轴内部区域和柱状图本身,基于此,尝试设置坐标轴外部的颜色,修改画图代码为:

fig, ax = plt.subplots(facecolor=(0.6, 0.5,0.9))

此时的输出结果为:

图5

由图5可见,外部背景、坐标轴内都有了颜色。

此时的完整代码为:

import matplotlib.pyplot as plt  # 引入matplotlib模块画图
import numpy as np  # 引入numpy模块做数学计算np.random.seed(19680801) #定义随机数种子def gradient_image(ax, direction=0.3, cmap_range=(0, 1), **kwargs): #自定义函数"""Draw a gradient image based on a colormap.Parameters----------ax : AxesThe Axes to draw on.direction : floatThe direction of the gradient. This is a number inrange 0 (=vertical) to 1 (=horizontal).cmap_range : float, floatThe fraction (cmin, cmax) of the colormap that should beused for the gradient, where the complete colormap is (0, 1).**kwargsOther parameters are passed on to `.Axes.imshow()`.In particular, *cmap*, *extent*, and *transform* may be useful."""phi = direction * np.pi / 2 #定义因变量,从np.pi可以看出这是一个角度变量v = np.array([np.cos(phi), np.sin(phi)]) #定义数组,包括正弦值和余弦值X = np.array([[v @ [1, 0], v @ [1, 1]],[v @ [0, 0], v @ [0, 1]]]) #这里的@是矩阵乘法a, b = cmap_range #定义变量a和bX = a + (b - a) / X.max() * X #定义变量Xim = ax.imshow(X, interpolation='bicubic', clim=(0, 1),aspect='auto', **kwargs) #定义变量imreturn im #返回imdef gradient_bar(ax, x, y, width=0.5, bottom=0): #自定义函数for left, top in zip(x, y):right = left + width #右边等于左边加宽度,这是要逐个排列的意思gradient_image(ax, extent=(left, right, bottom, top),cmap=plt.cm.Blues, cmap_range=(0.8, 0.8))fig, ax = plt.subplots(facecolor=(0.6, 0.5,0.9)) #设置坐标轴外区域颜色
ax.set(xlim=(0, 10), ylim=(0, 1))# background image
gradient_image(ax, direction=1, extent=(0,1,0, 1), transform=ax.transAxes,cmap=plt.cm.RdYlGn, cmap_range=(0.9, 0.9), alpha=0.5) #调用了子函数N = 10 #定义常量10
x = np.arange(N) + 0.15 #使用随机变量参与运算制造变量x
y = np.random.rand(N) #定义随机矩阵
gradient_bar(ax, x, y, width=0.7) #画随机柱状图
plt.show() #输出图形

【5】自主渐变设置

在前述学习的基础上,给所有区域山上色,并对坐标轴内部区域进行渐变设置,并设置图名为“Gradient Color”。

完整代码为:

import matplotlib.pyplot as plt  # 引入matplotlib模块画图
import numpy as np  # 引入numpy模块做数学计算np.random.seed(19680801) #定义随机数种子def gradient_image(ax, direction=0.3, cmap_range=(0, 1), **kwargs): #自定义函数"""Draw a gradient image based on a colormap.Parameters----------ax : AxesThe Axes to draw on.direction : floatThe direction of the gradient. This is a number inrange 0 (=vertical) to 1 (=horizontal).cmap_range : float, floatThe fraction (cmin, cmax) of the colormap that should beused for the gradient, where the complete colormap is (0, 1).**kwargsOther parameters are passed on to `.Axes.imshow()`.In particular, *cmap*, *extent*, and *transform* may be useful."""phi = direction * np.pi / 2 #定义因变量,从np.pi可以看出这是一个角度变量v = np.array([np.cos(phi), np.sin(phi)]) #定义数组,包括正弦值和余弦值X = np.array([[v @ [1, 0], v @ [1, 1]],[v @ [0, 0], v @ [0, 1]]]) #这里的@是矩阵乘法a, b = cmap_range #定义变量a和bX = a + (b - a) / X.max() * X #定义变量Xim = ax.imshow(X, interpolation='bicubic', clim=(0, 1),aspect='auto', **kwargs) #定义变量imreturn im #返回imdef gradient_bar(ax, x, y, width=0.5, bottom=0): #自定义函数for left, top in zip(x, y):right = left + width #右边等于左边加宽度,这是要逐个排列的意思gradient_image(ax, extent=(left, right, bottom, top),cmap=plt.cm.Blues, cmap_range=(0.2, 0.8))fig, ax = plt.subplots(facecolor=(0.6, 0.5,0.9)) #设置坐标轴外区域颜色
ax.set(xlim=(0, 10), ylim=(0, 1))# background image
gradient_image(ax, direction=1, extent=(0,1,0, 1), transform=ax.transAxes,cmap=plt.cm.RdYlGn, cmap_range=(0.1, 0.9), alpha=0.5) #调用了子函数N = 10 #定义常量10
x = np.arange(N) + 0.15 #使用随机变量参与运算制造变量x
y = np.random.rand(N) #定义随机矩阵
gradient_bar(ax, x, y, width=0.7) #画随机柱状图
ax.set_title('Gradient Color') #设置图名
plt.show() #输出图形

输出图形为:

图6

由图6可见,坐标轴内部的柱状图和背景颜色均渐变,坐标轴外的区域则是纯色。

【6】总结

学习了柱状图、坐标轴区域内部背景颜色的渐变设计,以及为坐标轴外部区域增添颜色。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/55157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI产品经理PRD文档与传统产品经理PRD有什么不同呢?

目录 模型输出:说白了,就是你的AI要干啥数据接入:你的AI要吃啥“粮食”验收标准:怎么判断你的AI干得好不好经验总结 你好,我是三桥君 在工作中,当我作为传统产品经理时,通常只需提供产品需求文…

【内网渗透】最保姆级的春秋云镜Flarum打靶笔记

目录 flag1 flag3 flag4​ flag2 flag1 扫外网 打的是flarum论坛,p牛之前有写过phar反序列化的利用: 从偶遇Flarum开始的RCE之旅 rockyou.txt爆出administrator/1chris,登录 用这个工具生成phar包 https://github.com/ambionics/p…

详解mysql和消息队列数据一致性问题

目录 前言 保持系统数据同步(双写问题) 消息队列消息丢失的问题 总结 前言 在当今互联网飞速发展的时代,随着业务复杂性的不断增加,消息队列作为一种重要的技术手段,越来越多地被应用于各种场景。它们不仅能有效解…

项目:微服务即时通讯系统客户端(基于C++QT)]四,中间界面搭建和逻辑准备

四,中间界面搭建 前言:当项目越来越复杂的时候,或许画草图是非常好的选择 一,初始化中间窗口initMidWindow void mainWidget::initMidWindow() {//使用网格布局进行管理QGridLayout* layout new QGridLayout();//距离上方 20px 的距离&…

Arthas redefine(加载外部的.class文件,redefine到JVM里 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.3 redefine(加载外部的.class文件,redefine到JVM里 )举例1:加载新的代码,jad/mc 命令使用举例2:上传 .class 文件到服务器的技巧 本人其他相关文章…

值传递和引用传递

值传递和引用传递是函数参数传递的两种类型,一般而言,基本数据类型都是值传递,数组和对象采用引用传递减少对象复制开销,但也有特例。 值和引用传递本质一样 值传递是拷贝值到函数参数,引用传递是拷贝引用(或者对象的指…

矿石运输船数据集、散货船数据集、普通货船数据集、集装箱船数据集、渔船数据集以及客船数据集

海船:用于船只检测的大规模精准标注数据集 我们很高兴地介绍一个新的大规模数据集——海船,该数据集专为训练和评估船只目标检测算法而设计。目前,这个数据集包含31,455张图像,并涵盖了六种常见的船只类型,包括矿石运…

Python基础语句教学

Python是一种高级的编程语言,由Guido van Rossum于1991年创建。它以简单易读的语法和强大的功能而闻名,被广泛用于科学计算、Web开发、数据分析等领域。 Python的应用领域广泛,可以用于开发桌面应用程序、Web应用、游戏、数据分析、人工智能等…

计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

往期热门项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上-俯卧撑计数…

Python的异步编程

什么是协程? 协程不是计算机系统提供,程序员人为创造。 协程也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行。 实现协程有那么几种方法: greenlet&…

Centos怎么执行脚本

方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本 cd /data/shell ./hello.sh 方法二:以绝对路径的方式去执行bash shell脚本 /data/shell/hello.sh 方法三:直接使用bash 或sh 来执行…

CSS外边距

元素的外边距(margin)是围绕在元素边框以外(不包括边框)的空白区域,这片区域不受 background 属性的影响,始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性,HTML 元素就是不会…

Linux shell编程学习笔记84:tee命令——显示保存两不误

0 引言 在前面的学习笔记中,我们经常使用echo命令和输出重定向来生成脚本文件或演示文件,其实Linux提供了一个可以从标准输入读取数据,并输出成文件的命令——tee。 1 tee命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 tee命令 的…

软件测试学习笔记丨Pytest 学习指南

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32336 基本介绍 pytest框架是一个成熟,全面的测试框架,具有非常丰富的第三方插件,并且可以自定义扩展 比如:pytest-selenium , pytest-html ,…

MySQL高阶2004-职员招聘人数

目录 题目 准备数据 分析数据 实现 题目 一家公司想雇佣新员工。公司的工资预算是 70000 美元。公司的招聘标准是: 雇佣最多的高级员工。在雇佣最多的高级员工后,使用剩余预算雇佣最多的初级员工。 编写一个SQL查询,查找根据上述标准雇…

net core mvc 数据绑定 《1》

其它的绑定 跟net mvc 一样 》》MVC core 、framework 一样 1 模型绑定数组类型 2 模型绑定集合类型 3 模型绑定复杂的集合类型 4 模型绑定源 》》》》 模型绑定 使用输入数据的原生请求集合是可以工作的【request[],Querystring,request.from[]】, 但是从可读…

unity一键注释日志和反注释日志

开发背景:游戏中日志也是很大的开销,虽然有些日志不打印但是毕竟有字符串的开销,甚至有字符串拼接的开销,有些还有装箱和拆箱的开销,比如Debug.Log(1) 这种 因此需要注释掉,当然还需要提供反注释的功能&am…

前端 vue3 对接科大讯飞的语音在线合成API

主要的功能就是将文本转为语音,可以播放。 看了看官方提供的demo,嗯....没看懂。最后还是去网上找的。 网上提供的案例,很多都是有局限性的,我找的那个他只能读取第一段数据,剩下的不读取。 科大讯飞的接口&#xf…

监控告警功能详细介绍及操作演示:运维团队的智能保障

在当今这个信息化高速发展的时代,运维团队面临着前所未有的挑战。为了确保系统的稳定性和高效运维,监控告警功能成为了运维团队不可或缺的得力助手。本文将详细介绍我们的监控告警功能,并结合实际操作页面进行演示,帮助运维团队更…

25中国烟草校园招聘面试问题总结 烟草面试全流程及面试攻略

开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费!全文干货。 工作招聘无领导小组面试全攻略最常见面试题(第一部分)共有17章可用于国企私企合资企业工作招聘面试面试必备心得面试总结资源-CSDN文库https://d…