小编Mag*_*nus的帖子

mplot3d中的z轴格式

我试图在matplotlib中制作表面图,但我无法使z轴的格式看起来很好.我希望它是科学记数法,沿着轴的前缀和轴上方的指数(就像你通常在matlab中得到的那样).目前我只能得到没有科学记数法的值(前面有一个逗号和五个零),或者我得到前缀而不是指数......

尝试1 :(给出科学记数法,但不是指数)

from matplotlib import ticker

ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, rstride=3, cstride=3)
formatter = ticker.ScalarFormatter()
formatter.set_scientific(True)
formatter.set_powerlimits((-2,2))
ax.w_zaxis.set_major_formatter(formatter)
Run Code Online (Sandbox Code Playgroud)

尝试2 :(给出十进制表格上的值,与默认输出相同)

from matplotlib import ticker

ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, rstride=3, cstride=3)
ax.ticklabel_format(axis="z", style="sci", scilimits=(0,0))
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

python matplotlib mplot3d

11
推荐指数
1
解决办法
1800
查看次数

从python脚本调用gcc给我'未定义的符号:"_ main"

我正在尝试用Python编写代码生成器脚本,它生成一个C源文件,编译并运行它.但是,我无法从脚本中调用gcc.

一个简单的hello world示例:

import subprocess  

basename = "CodeGenTest";  
execname = basename;  
srcname = basename + ".c";  

codeList = [];  
codeList.append("#include <stdio.h>");  
codeList.append("int main(int argc, char *argv[])\n{");  
codeList.append("printf(\"Hello world.\\n\");");  
codeList.append("}");  

# Convert codelist to string.  
codeList.append("");  
codeString = "\n".join(codeList);  

# Print code to output source file  
outfile=open(srcname,'w');  
outfile.write(codeString);  
outfile.close;  

print "Compile.";  
cmd = ["gcc", "-O2", srcname, "-o", execname];  
p = subprocess.Popen(cmd);  
p.wait();  

subprocess.call(["./"+execname]);  
Run Code Online (Sandbox Code Playgroud)

如果我运行此脚本,我会收到以下错误输出

Compile.
Undefined symbols:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 …
Run Code Online (Sandbox Code Playgroud)

c python gcc code-generation

1
推荐指数
1
解决办法
3694
查看次数

标签 统计

python ×2

c ×1

code-generation ×1

gcc ×1

matplotlib ×1

mplot3d ×1