首页 > 其他分享 >我用plt.contour()怎么把颜色棒区间显示区间设定为0~17呀?

我用plt.contour()怎么把颜色棒区间显示区间设定为0~17呀?

时间:2024-07-24 12:19:16浏览次数:8  
标签:10 plt 17 np 混子 区间 ax

大家好,我是Python进阶者。

一、前言

前几天在Python白银交流群【王者级混子】问了一个matplotlib作图的问题,问题如下:大佬们,我用plt.contour()怎么把颜色棒区间显示区间设定为0~17呀?

image.png

二、实现过程

这里【论草莓如何成为冻干莓】给了一个指导,如下所示:这个是指旁边的颜色条吧,你搜一下都是一样的设置。

【王者级混子】:我搜了,都没达到我想要的要求。比如下面这个,感觉接近要求了,但是之后的数字会黏在一起。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, .1)
y = np.arange(0, 10, .1)
X, Y = np.meshgrid(x,y)

data = 2*( np.sin(X) + np.sin(3*Y) )

fig, ax = plt.subplots()
contour = ax.contour(X, Y, data)
cbar = fig.colorbar(contour, ax=ax)
cbar.set_ticks(np.linspace(0, 10, 10))  # Set 6 ticks from 0 to 10 (inclusive)
# cbar.set_ticklabels([f'{i:.1f}' for i in np.linspace(0, 10, 10)])  # Set tick labels
cbar.ax.set_ylim(0, 10)  # Set the limits of the colorbar

plt.show()

【论草莓如何成为冻干莓】:应该是数据不够长。我把这个设置到里面的数据最大设置到10就可以显示数据条。

image.png

【王者级混子】:确实放到10没问题,主要我导师要求我在最大值为1的情况下,显示0到10的颜色棒。

import matplotlib.pyplot as plt
import matplotlib.cm as cm

# 创建一个新的图像和坐标轴,这次将颜色条显示在右侧
fig, ax = plt.subplots(1, 1, figsize=(10, 6))

# 创建一个 ScalarMappable 对象用于颜色条
sm = cm.ScalarMappable(cmap=plt.get_cmap('viridis'))
sm.set_clim(0, 17)

# 定义颜色条的层级(即刻度位置)
levels = [0, 4, 8, 12, 17]

# 使用 ScalarMappable 对象创建颜色条,并设置其显示在右侧
cbar = fig.colorbar(sm, ax=ax, orientation='vertical', label='Data Value', 
                    ticks=levels)

# 显示图像
plt.show()

【王者级混子】:只能单独创建一个颜色棒放右边了,但这样又不好看。感觉没有这种好看。

【论草莓如何成为冻干莓】:你想要的就是这种的,你看他数据条上面也是有空白部分。

image.png

【王者级混子】:那个黄色的其实对应的就是17,我把之前绘制的图片搞成了gif,对比一下发现,颜色条都显示在那一半的地方;我查了一下,网上说plt.contour()它没法固定住。

【论草莓如何成为冻干莓】:没问题,符合你这个要求。

【王者级混子】:谢谢大佬,我再去研究研究,感觉差不多了。

【论草莓如何成为冻干莓】:其实就是把能够显示的值乘以两倍,这个17定的肯定不是突发奇想的。

【王者级混子】:17是所有数据中查到的最大值,0则是最小值。

顺利地解决了自己的问题。

如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是Python进阶者。这篇文章主要盘点了一个Python代码处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【王者级混子】提出的问题,感谢【论草莓如何成为冻干莓】给出的思路,感谢【莫生气】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

image.png

标签:10,plt,17,np,混子,区间,ax
From: https://www.cnblogs.com/dcpeng/p/18320597

相关文章

  • 【日记】果然单身男青年就是牛马吗……(317 字)
    正文昨天睡觉被热醒了……半夜爬起来开空调。这是我头一次睡着的时候开两个小时以上的空调。今天又是搬东西的一天。单身,家住单位,男青年。纯纯牛马的象征。这帮人使唤起我来也没个心理负担,后来我就不干了。累了。她们还说我。光说我有啥用,活儿自己干去啊,反正我是不去了......
  • ARC117F Gateau 题解
    ARC117FGateau题解题解区好像都没有对dp详细解释,本文将稍细致地说一说dp部分。题目大意给定一个长度为\(2N\)的环,环上每个节点有属性值\(B_i\(i=0,\dots,2N-1)\)和\(2N\)个限制,第\(i\)个限制形如\(\sum\limits_{j=i}^{i+N-1}B_j\geqA_i\),向环上的节点赋值,使得......
  • 【算法专题】双指针算法之LCR 179. 查找总价格为目标值的两个商品(力扣)
     欢迎来到CILMY23的博客......
  • P3957[NOIP2017普及组]跳房子
    https://www.luogu.com.cn/problem/P3957https://class.51nod.com/Html/Textbook/ChapterIndex.html#textbookId=126&chapterId=337显然,但是维护滑动窗口有技巧,不能每次插入一个值,因为维护\(x\)不方便。所以考虑一个\(cur\),每次对于新的\(i\)不能跳过时移动\(cur\),然后队......
  • [rCore学习笔记 017]实现批处理操作系统
    写在前面本随笔是非常菜的菜鸡写的。如有问题请及时提出。可以联系:[email protected]:https://github.com/WindDevil(目前啥也没有本章目的实现批处理操作系统,每当一个应用程序执行完毕,都需要将下一个要执行的应用的代码和数据加载到内存.应用加载机制在操作系统......
  • 前缀和(有意思的求区间值思想)
    第4题   前缀和 查看测评数据信息给一个有一个长度为n的数组a[1,2,...n]。数组a的前缀和定义为s[i]=a[1]+a[2]+...+a[i](对于所有的1<=i<=n),规定s[0]=0数组a的前缀和前缀最大值为max[i]=max(s[0],s[1],s[2],...s[i])(对于所有的0<=i<=n)数组a的1类和谐度为为max[i]中......
  • SpringBoot升级到3.3.2版本,JDK升级到17,引入Mybatis-plus后启动报错:Property 'sqlSessi
    【问题描述】2024-07-23T15:16:07.174+08:00WARN2604---[questionnaire][main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependen......
  • 7.17鲜花 《窥见他们生命的一角》
    人在海亮,补题不力。随机游走,愿得安宁。天气虽然有些燥热,倒也不错。在天台往上看,无趣的云慵懒着,太阳也不由得懈怠了;往下看,Konata在往东面走,HB在跑向特色餐厅;往周遭看,一些人在打羽毛球,一些人也在往下看。走向靠湖的一侧,湖水微起,无意发现连廊栏墙上一盆焦黑的植物,大抵是投进了太......
  • 题解:P10717「KDOI-05」简单的树上问题
    \(\text{Link}\)题意给你一颗\(n\)个结点的树,有\(k\)次操作,第\(i\)次操作:每个点初始都处于未激活状态;以\(p_{i,j}\)的概率激活点\(j\);对于每个未激活的点\(i\),如果存在激活的结点\(j,k\)且\(i\)在\(j\)到\(k\)的路径上,则\(i\)也会被激活。给出\(v_{i......
  • 【待做】【攻防技术系列+漏洞复现】MS-17010
    虚拟机环境搭建:Kali,192.168.10.131win7,192.168.10.133winXP,192.168.10.137众所周知,msfconsole是一款神器的工具,里面具备了市面上绝大多数的payload,而在往常的ms17010漏洞最常见的四个payload如下:漏洞检测payload:auxiliary/scanner/smb/smb_ms17_010x64架构漏洞利用pay......