谢谢您的帮助!
我正在绘制一个等高线图来表示给定范围内探测器的灵敏度。我拥有的大多数数据都低于平均值,所以当我绘制时,我的大部分绘图都在蓝色范围内。
编辑 我发现了我的错误。我应该采用 Z 的对数值而不是对其进行标准化。现在,情节看起来更好了。请查看之前和之后的日志图。但是,随着更多数据位于 900000 到 1350000 范围内,有没有办法改进绘图。如果我限制范围,那么它们上面的数据就会丢失。
另外我想知道是否有任何代码可以直接取Z轴的对数刻度?
如果您想了解更多详情,请告诉我!
## importing libraries ##
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.ticker as ticker
## read the csv files ##
df1 = pd.read_csv (r'D:\sys_files\Downloads\data_ggf.csv')
## declare the variables ##
x = np.arange(-50,75,25)
y = df1[['Y']]
[X, Y] = np.meshgrid(x, y)
Z = df1[['x100','x75','x0','x25','x50']]
z_n = Z.to_numpy()
## define the functions ##
Z_log = np.log10(z_n)
fig, ax = plt.subplots()
im = ax.contourf(X,Y,Z_log, 1000, cmap='jet', extend='both')
## below are plot settings ##
def myfmt(x, pos):
return '{0:.1f}'.format((10**x))
cbar = plt.colorbar(im, format=ticker.FuncFormatter(myfmt))
cbar.ax.set_ylabel('neutron neutron per second', rotation=270)
plt.xticks(np.arange(-50, 50, 10))
plt.yticks(np.arange(10, 200, 20))
plt.axis([-50, 50, 10, 200])
plt.xlabel('Distance b/w Detectors in cm')
plt.ylabel('Distance from Ground in cm')
plt.title('neutron neutron sensitivity map for central plane')
plt.show()