Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 索引器错误:使用从mathematica导出的表时,列表索引超出范围_Python_Matplotlib_Wolfram Mathematica - Fatal编程技术网

Python 索引器错误:使用从mathematica导出的表时,列表索引超出范围

Python 索引器错误:使用从mathematica导出的表时,列表索引超出范围,python,matplotlib,wolfram-mathematica,Python,Matplotlib,Wolfram Mathematica,当我试图用Mathematica Wolfram提供的文本文件,使用Matplotlib绘制一些数据时,我遇到了一个问题。 代码如下: import numpy as np import matplotlib.cm as cm import matplotlib.pyplot as plt import matplotlib.mlab as mlab import matplotlib.artist as pltart params = {'font.size': 11, 'axes.lab

当我试图用Mathematica Wolfram提供的文本文件,使用Matplotlib绘制一些数据时,我遇到了一个问题。 代码如下:

import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import matplotlib.artist as pltart


params = {'font.size': 11,
'axes.labelsize' : 18, 'axes.titlesize' : 18,
'xtick.labelsize' : 18, 'ytick.labelsize' : 18,
'figure.figsize' : [6.0,4.4],
'figure.subplot.left' : 0.13, 'figure.subplot.right' : 0.999,
'figure.subplot.bottom' : 0.16, 'figure.subplot.top' : 0.999}

plt.rcParams.update(params)

x=np.arange(7,24,0.1)

M3=0.47e-3*x**3

plt.figure()

RhoS,MS,RS,=np.loadtxt('Static.pnr',usecols=(0,1,2),unpack=True)

# MtotVsRtot plot

plt.plot(RS,MS,'k-',color='red',linewidth=2.0)

plt.plot(x,M3,'k-.',color='grey',linewidth=1.5)

plt.xlabel(r'$R_{\rm eq}\,(\rm km)$',fontsize=20)
plt.ylabel(r'$M/M_{\odot}$', fontsize=20)

#plt.show()
plt.savefig('MvsR_L&P_GM1.eps')
#exit()
文本文件通过以下命令从mathematica获得:

Static = Table[{KepSeq[[i, 1]], 
 KepSeq[[i, 2]], KepSeq[[i, 3]]}, {i, 1, 
 Length[KepSeq]}] // TableForm

Export["Static", Static, "Table"]
其中,
KepSeq[[i,j]]
只是一个值矩阵

看起来,即使Mathematica正确地生成了一个三列文本文件,Matplotlib也无法识别这些列,事实上,使用手工构建的文本文件进行测试,我没有遇到任何问题

当然,使用.txt文件并不能解决错误

与标题一样,错误是:
索引器错误:列表索引超出范围。

编辑:

放在一边,只需执行Static=KepSeq[[All,1;;3]]。你有没有研究过这个文件,以确保它都是数字

我注意到mathematica创建的表只由数字组成。但是,“复制并粘贴”到一个空的.txt文件中,会显示许多隐藏字符,例如偏旁字符、逗号和其他字符:

\!\(\*
TagBox[GridBox[{
{"19.30736436824425`", "0.49704178850444225`"},


你知道怎么摆脱它吗?同时,(显然不令人满意的)解决方案是复制并通过,然后手动删除多余的字符。

搁置,只需执行
Static=KepSeq[[All,1;;3]
。您是否研究过该文件以确保其全部为数字?再次查看,您正在将
静态
赋值给
表格
格式化表达式。摆脱
TableForm
应该可以解决问题。(无论如何,在
TableForm
后面加一个分号是完全没有意义的,它说的是“很好地格式化它,但不要显示它”。)正是,正如我所说的,去掉
TableForm
,或者如果你想看到它,也可以这样做:
(Static=KepSeq[[All,1;;3]])//TableForm
请注意括号,它会导致在格式化之前为
Static
分配数字。是的,很抱歉,我仍然必须完全理解如何编辑和回答。无论如何,我编辑了主要文本,试图回答您的疑问。此外,请坚持您的原始
导出
,而不是复制粘贴。只需执行
Static=KepSeq[[All,1;;3]]
。您是否研究过该文件以确保其全部为数字?再次查看,您正在将
静态
赋值给
表格
格式化表达式。摆脱
TableForm
应该可以解决问题。(无论如何,在
TableForm
后面加一个分号是完全没有意义的,它说的是“很好地格式化它,但不要显示它”。)正是,正如我所说的,去掉
TableForm
,或者如果你想看到它,也可以这样做:
(Static=KepSeq[[All,1;;3]])//TableForm
请注意括号,它会导致在格式化之前为
Static
分配数字。是的,很抱歉,我仍然必须完全理解如何编辑和回答。无论如何,我编辑了正文,试图回答您的疑问。另外,请坚持原始的导出,而不是复制粘贴。
{"11.327870685578393`", "2.199907624212163`"}
},
GridBoxAlignment->{
     "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, 
      "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[2.0999999999999996`]}, 
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]}, 
Offset[0.2]}, "RowsIndexed" -> {}}],
Function[BoxForm`e$, 
TableForm[BoxForm`e$]]]\)