前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我用plt.contour()怎么把颜色棒区间显示区间设定为0~17呀?

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

作者头像
Python进阶者
发布2024-07-31 17:36:49
700
发布2024-07-31 17:36:49
举报
文章被收录于专栏:Python爬虫与数据挖掘

一、前言

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

二、实现过程

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

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

代码语言:javascript
复制
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就可以显示数据条。

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

代码语言:javascript
复制
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()

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

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

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

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、实现过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档