我一直在寻找这个问题的简单答案,但似乎我找不到一个.我宁愿远离Python 2.6/2.7中尚未包含的任何外部库.
我有2个c头文件,类似于以下内容:
//constants_a.h
const double constant1 = 2.25;
const double constant2 = -0.173;
const int constant3 = 13;
Run Code Online (Sandbox Code Playgroud)
...
//constants_b.h
const double constant1 = 123.25;
const double constant2 = -0.12373;
const int constant3 = 14;
Run Code Online (Sandbox Code Playgroud)
...
我有一个python类,我想将这些常量导入:
#pythonclass.py
class MyObject(object):
def __init(self, mode):
if mode is "a":
# import from constants_a.h, like:
# self.constant1 = constant1
# self.constant2 = constant2
elif mode is "b":
# import from constants_b.h, like:
# self.constant1 = constant1
# self.constant2 = constant2
Run Code Online (Sandbox Code Playgroud)
...
我有使用常量的c代码,类似于: …
我有一组y值,形成一条线.另外,我有一个数组的元素数量与y数组的数量相同,范围从0到1.我们将这个数组称为'z'.我想绘制y值的数组,以便每个点的颜色对应于z值.
在gnuplot中,您可以使用'lc变量'来执行此操作:
plot ’data’ using 1:2:3 with points lc variable
Run Code Online (Sandbox Code Playgroud)
使用此处的建议:Matplotlib scatterplot; 颜色作为第三个变量的函数
,我能够使用散点图,它确实起作用:
import matplotlib as mpl
import matplotlib.pyplot as plt
plt.scatter(x, y, c=z, s=1, edgecolors='none', cmap=mpl.cm.jet)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)
有没有办法用matplotlib中的plot方法做到这一点,类似于这个?
plt.plot(x, y, c=z)
Run Code Online (Sandbox Code Playgroud)
当我尝试上面的代码时,所有的行都显示为黑色.
我正在尝试生成一个散点图,它有两个不同的y轴和一个颜色条.
这是使用的伪代码:
#!/usr/bin/python
import matplotlib.pyplot as plt
from matplotlib import cm
fig = plt.figure()
ax1 = fig.add_subplot(111)
plt.scatter(xgrid,
ygrid,
c=be, # set colorbar to blaze efficiency
cmap=cm.hot,
vmin=0.0,
vmax=1.0)
cbar = plt.colorbar()
cbar.set_label('Blaze Efficiency')
ax2 = ax1.twinx()
ax2.set_ylabel('Wavelength')
plt.show()
Run Code Online (Sandbox Code Playgroud)
它产生了这个情节: 情节http://i48.tinypic.com/2zix7x1.png
我的问题是,你如何使用不同比例的"波长"轴,以及如何将颜色条更多地向右移动,使其不是波长的方式?
我有一个类似于这里提出的问题的问题:Importing a long list of constants to a Python file
基本上,我有一个单独的模块,它只包含一长串常量,例如
constants.py
x = 1.2
y = 30.4
.
.
.
Run Code Online (Sandbox Code Playgroud)
在另一个模块中,我想导入这些常量并将它们初始化为实例属性。
class.py
class something(object):
def __init__(self):
import constants
self.x = constants.x
self.y = constants.y
.
.
.
Run Code Online (Sandbox Code Playgroud)
有没有更简单或更像 python 的方法来做到这一点,而不是重新输入所有变量名?