Python 修改颜色栏中的记号编号
嗨,我正在尝试更改colorbar上的编号我的代码在colorbar上给了我一个意外的数字(+1.552,数字是正确的,我只是不理解格式)。我的图表如下:Python 修改颜色栏中的记号编号,python,matplotlib,plot,colorbar,Python,Matplotlib,Plot,Colorbar,嗨,我正在尝试更改colorbar上的编号我的代码在colorbar上给了我一个意外的数字(+1.552,数字是正确的,我只是不理解格式)。我的图表如下: import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['text.usetex'] = True matplotlib.rcParams['text.latex.unicode'] = True with open("
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['text.usetex'] = True
matplotlib.rcParams['text.latex.unicode'] = True
with open("psi_newdata.dat") as f:
data = f.read()
data = data.split('\n')
cm = plt.cm.get_cmap('RdYlBu')
x = [float(row.split('\t')[12]) for row in data]
y = [float(row.split('\t')[14]) for row in data]
z = [float(row.split('\t')[8])/1000.0 for row in data]
cm = plt.cm.get_cmap('YlGnBu')
fig, ax = plt.subplots()
ax.set_yticks([0.1224,0.1172], minor=True)
ax.yaxis.grid(True, which='minor')
sc = ax.scatter(x, y, c=z,cmap=cm)
cbar = plt.colorbar(sc)
plt.xlabel(r'$\displaystyle M_{\tilde{\nu}_R}$\ [GeV]')
plt.ylabel(r'$\displaystyle\Omega h^2$')
cbar.set_label(r"$\displaystyle M_{Z^{'}}$\ [TeV]")
plt.show()
我想将颜色栏上的标记格式化为1.5、1.52、1.54等。
我使用的代码如下所示:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['text.usetex'] = True
matplotlib.rcParams['text.latex.unicode'] = True
with open("psi_newdata.dat") as f:
data = f.read()
data = data.split('\n')
cm = plt.cm.get_cmap('RdYlBu')
x = [float(row.split('\t')[12]) for row in data]
y = [float(row.split('\t')[14]) for row in data]
z = [float(row.split('\t')[8])/1000.0 for row in data]
cm = plt.cm.get_cmap('YlGnBu')
fig, ax = plt.subplots()
ax.set_yticks([0.1224,0.1172], minor=True)
ax.yaxis.grid(True, which='minor')
sc = ax.scatter(x, y, c=z,cmap=cm)
cbar = plt.colorbar(sc)
plt.xlabel(r'$\displaystyle M_{\tilde{\nu}_R}$\ [GeV]')
plt.ylabel(r'$\displaystyle\Omega h^2$')
cbar.set_label(r"$\displaystyle M_{Z^{'}}$\ [TeV]")
plt.show()
您在颜色栏上看到的格式是一种速记符号。如果您想查看没有偏移量的经典格式,只需在调用
colorbar
时指定所需格式:
import numpy as np
import matplotlib.pyplot as plt
# attempt to duplicate your data
x = np.arange(10)
y = x
z = 1.552 + np.linspace(0, 0.0030,10)
plt.scatter(x,y,c=z)
cbar = plt.colorbar(format="%.4f")
colorbar
方法还允许您指定要在何处精确显示刻度:
cbar = plt.colorbar(ticks=[1.5523, 1.5547], format="%.4f")
请注意,您应该同时指定格式和刻度,否则指定的刻度仍将使用颜色栏顶部的偏移量
下图说明了这一点:
您在颜色栏上看到的格式是一种速记符号。如果您想查看没有偏移量的经典格式,只需在调用
colorbar
时指定所需格式:
import numpy as np
import matplotlib.pyplot as plt
# attempt to duplicate your data
x = np.arange(10)
y = x
z = 1.552 + np.linspace(0, 0.0030,10)
plt.scatter(x,y,c=z)
cbar = plt.colorbar(format="%.4f")
colorbar
方法还允许您指定要在何处精确显示刻度:
cbar = plt.colorbar(ticks=[1.5523, 1.5547], format="%.4f")
请注意,您应该同时指定格式和刻度,否则指定的刻度仍将使用颜色栏顶部的偏移量
下图说明了这一点: