使用Matplotlib的符号功能时,出现以下错误:
ERROR: Data has no positive values, and therefore can not be log-scaled.
但是,我的数据在y维上都是正数:
presvals ~= [1000 990 980 970 960 950 940 930 920 910 900 ... 10]
这是我调用代码的方式:
import sharppy.sharptab.thermo as thermo
imageScale = 2
fig = plt.figure(figsize=(6.5875*imageScale, 6.2125*imageScale))
ax = fig.add_subplot(111)
ax.grid(True)
pmax = 1000
pmin = 10
dp = -10
presvals = np.arange(int(pmax), int(pmin)+dp, dp)
tw = []
for p in presvals:
tw.append(thermo.wetlift(1000., t, p))
ax.semilogy(tw, presvals, 'b-', alpha=.3)
我之前已经使用过此确切的代码,并且可以正常工作。是否有缺少的东西?我尝试格式化y轴没有帮助。任何看的方向将不胜感激。
答案 0 :(得分:0)
对于我来说,此代码有效:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
imageScale = 2
fig = plt.figure(figsize=(6.5875*imageScale, 6.2125*imageScale))
ax = fig.add_subplot(111)
ax.grid(True)
pmax = 1000
pmin = 10
dp = -10
presvals = np.arange(int(pmax), int(pmin)+dp, dp)
ax.semilogy(presvals, 'b-', alpha=.3)
所以我认为问题出在tw
的定义上,我无法复制...