【发布时间】:2020-06-27 23:46:54
【问题描述】:
这是我的 .dat 文件的样子:
Model z x M L T Lin Period Growth rate logT logP logM
24 0.02 0.7 5.4 1500 5150 6.4025 0.00061948 8.54675 1.85669 1.6864
26 0.02 0.7 5.4 1500 5250 5.954 0.0017293 8.56598 1.78406 1.6864
29 0.02 0.7 5.4 1500 5400 5.3715 0.0022253 8.59415 1.68111 1.6864
31 0.02 0.7 5.4 1500 5500 5.0308 0.0015741 8.6125 1.61558 1.6864
我试图在倒置的 x 轴上绘制 T 列,在 y 轴上绘制 L 列。这是我的 Python 代码的最小版本:
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('PostiveGrowth_SetC_PeriodRange1.dat')
plt.plot(data[:,5],data[:,4])
plt.xlabel('Temperature (K)')
plt.ylabel('Luminosity (Lsun)')
plt.suptitle('Set A Instability Strip')
plt.gca().invert_xaxis()
plt.show()
但是,我收到以下错误:
ValueError: could not convert string to float: Model
我在 Ubuntu 的终端中使用 python 版本 2.7.17 运行它。
编辑:我发现了问题,是第一行的字符串。有没有办法跳过第一行,所以我可以绘制花车?
【问题讨论】:
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
-
data[1:, : ]怎么样?除了第一行之外,它都得到了。你可以使用data = data[1:, : ]或plot( data[1:,5], data[1:,4] ) -
从文档中,loadtxt() 具有
skiprows参数。也许尝试使用它?
标签: python matplotlib