我在python中用plot
生成了colorbar
。
这是我当前正在使用的代码:
import openmc
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import make_axes_locatable
sp1 = openmc.StatePoint('statepoint.550-20.h5')
tally1 = sp1.tallies[1]
flux1 = tally1.mean.ravel()
y = np.reshape(flux1, (200,200))
ax = plt.subplot(111)
Z = ax.imshow(y, cmap=plt.cm.viridis)
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="10%", pad=0.05)
plt.colorbar(Z, cax=cax)
plt.show()
现在,我的问题是如何自定义颜色栏?
我想做的是为maximum
设置minimum
和0.000000
的值(例如,将0.000050
设置为color scale
),我希望该图显示颜色图我定义比例时,不是从数组值y
自动生成的比例。
我正在从Mac终端运行python。
感谢您的帮助。谢谢。
答案 0 :(得分:0)
通常,plt.clim(0.000000, 0.000050)
应该可以工作。
答案 1 :(得分:0)
我已经解决了。
import openmc
sp1 = openmc.StatePoint('statepoint.550-20.h5')
tally1 = sp1.tallies[1]
flux1 = tally1.mean.ravel()
import matplotlib.pyplot as plt
import matplotlib.colors
import numpy as np
y = np.reshape(flux1, (200,200))
ax = plt.subplot(111)
norm = matplotlib.colors.Normalize(vmin=0.000000,vmax=0.000025)
Z = ax.imshow(y, cmap=plt.cm.viridis, norm=norm )
plt.colorbar(Z)
plt.show()
现在我在刻度中有(0.00000, 0.00001, 0.00002, 0.00003, 0.00004, 0.00005)
标签,并且绘图根据刻度颜色值显示。不过,我仍然需要一个有关如何将标签号从(0.00000, 0.000005, 0.00001, 0.000015, 0.00002, 0.000025, 0.00003, 0.000035, 0.00004, 0.000045, 0.00005)
增加到11的指南。谢谢。