python - 如何获得单个颜色条?
问题描述
在每个 for 循环的以下代码中,我得到一个颜色条。但我想用一个颜色条表示以下数据。
`import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
fig = plt.figure()
ax= fig.add_subplot(111)
h_1 = np.load("./Result_2D/disorder.npy")
h = h_1[0:2]
print("h: ",h)
for k in range(len(h)):
h_val = round(h[k],1)
KL=np.load("./KL_%s.npy"%h_val)
print("KL: ",KL[0:5])
E = np.load("./E_%s.npy"%h_val)
print("E_shape: ",E[0:5])
W =np.load("./W_%s.npy"%h_val)
print("W: ",W[0:5])
sc= ax.scatter(E,W,c=KL,cmap='RdBu_r')
plt.colorbar(sc)`
解决方案
这是一些关于如何使用相同的单个颜色条打印多个散点集的示例代码
pltrange = np.logspace(1, 2, num=20) #or use np.linspace, or provide a range of values (based on the limits of your data)
lbrange = pltrange[::2] #labels for colorbar
ax.scatter(x=stream['Dist'], y=stream['Depth'], s=50,
c=stream['Sand Concentration (mg/l)'],
cmap='rainbow', edgecolor='k', linewidths=1,
vmin=pltrange[0],vmax=pltrange[-1]) #note the vmin and vmax, do this for all scatter sets
cb = fig.colorbar(ax=ax, ticks=lbrange, pad=0.01) #display colorbar, keep outside loop
cb.ax.set_yticklabels(['{:.1f}'.format(i) for i in lbrange]) #format labels if desired
我意识到它的格式并不完全适合您的代码,但是..它的原理完全相同,我是从床上发布的:)所以我认为您可以进行必要的调整
推荐阅读
- ios - 矩形周围的阴影实现
- html - 输入文本的自定义工具提示
- sharepoint - 如何授予用户自定义操作权限(站点操作)
- database - 从 SQLite3 数据库中读取数据并使用它们
- php - 在 Laravel Eloquent Collection 上使用 put 方法将始终返回一个数组
- google-app-engine - Google App Engine ndb:混合同步和异步操作的顺序
- javascript - 不要让用户在表单字段中添加信息,而不会被禁用
- android - Ionic 原生 Zip 插件在解压俄语名称的 zip 文件时总是返回“Failed”
- javascript - 如何将对象解构为参数名称
- python - 从多语言 Unicode 文本中删除表情符号