Matplotlib Semilogy说数据为负数

时间:2018-07-17 22:12:22

标签: python matplotlib

使用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轴没有帮助。任何看的方向将不胜感激。

1 个答案:

答案 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的定义上,我无法复制...