这是一个非常简单的例子:
xvalues = [2,3,4,6]
for x in xvalues:
plt.axvline(x,color='b',label='xvalues')
plt.legend()
Run Code Online (Sandbox Code Playgroud)
现在,图例将在图例中将'xvalues'显示为蓝线4次.有没有比以下更优雅的方法来解决这个问题?
for i,x in enumerate(xvalues):
if not i:
plt.axvline(x,color='b',label='xvalues')
else:
plt.axvline(x,color='b')
Run Code Online (Sandbox Code Playgroud) 我刚刚改变了一个我正在编写的程序,将我的数据保存为numpy数组,因为我遇到了性能问题,而且差别很大.它最初运行需要30分钟,现在需要2.5秒!
我想知道它是如何做到的.我认为是因为它消除了对for
循环的需要但超出了我的难度.
有没有办法告诉pyplot.text()像pyplot.legend()一样的位置?
像传奇论点这样的东西会很棒:
plt.legend(loc="upper left")
Run Code Online (Sandbox Code Playgroud)
我试图用字母标记不同轴的子图(例如"A","B").我认为必须有一种比手动估算位置更好的方法.
谢谢
是否有使用matplotlib在图形/图形下面绘制标题框的功能?我搜索谷歌并没有找到任何这样的功能.
像图像中显示的东西会很棒.
我想在同一个imshow图上比较两组不同的数据,以便于查看差异.我的第一直觉是使colormap中的颜色透明(特别是较低的值),但我无法使其工作:
from matplotlib.colors import colorConverter
import matplotlib.pyplot as plt
import numpy as np
# create dummy data
zvals = np.random.rand(100,100)*10-5
zvals2 = np.random.rand(100,100)*10-5
# generate the transparent colors
color1 = colorConverter.to_rgba('white',alpha=0.0)
color2 = colorConverter.to_rgba('black',alpha=0.8)
# make the colormaps
cmap1 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap',['green','blue'],256)
cmap2 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap2',[color1,color2],256)
img2 = plt.imshow(zvals,interpolation='nearest',cmap=cmap1,origin='lower')
img3 = plt.imshow(zvals2,interpolation='nearest',cmap=cmap2,origin='lower')
plt.show()
Run Code Online (Sandbox Code Playgroud)
没有错误,但第二个图的白色和黑色没有显示任何透明度.我还尝试使用colorConverter方法在正常的plt.plot情况下设置颜色,尽管显示了正确的颜色,但颜色也没有变得透明.
关于如何叠加/比较imshow图的任何其他建议将非常感激
我想给一个子类一些额外的属性,而不必显式调用一个新方法.那么有没有一种方法可以为继承的类提供一个__init__
不会覆盖__init__
父类方法的类型方法?
我编写下面的代码纯粹是为了说明我的问题(因此属性的命名很差等).
class initialclass():
def __init__(self):
self.attr1 = 'one'
self.attr2 = 'two'
class inheritedclass(initialclass):
def __new__(self):
self.attr3 = 'three'
def somemethod(self):
print 'the method'
a = inheritedclass()
for each in a.__dict__:
print each
#I would like the output to be:
attr1
attr2
attr3
Run Code Online (Sandbox Code Playgroud)
谢谢
我知道你可以通过冒号将多个位置添加到python路径,即:
export PYTHONPATH=~/one/location:~/second/location
Run Code Online (Sandbox Code Playgroud)
等等
我有几个地方要添加,使用上面的方法看起来很乱.有没有办法在多行中添加它们?这是我尝试过的,最后一行删除了第一行.
export PYTHONPATH=~/one/location
export PYTHONPATH=~/second/location
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在读取质谱仪的数据文件,许多数字都是e形式,例如
4096.26 5.785e1
4096.29 5.784e1
4096.31 5.784e1
4096.33 5.784e1
4096.36 5.783e1
Run Code Online (Sandbox Code Playgroud)
我打算使用split函数来获取两个数字,但我想知道是否有一个函数将第二列转换为python浮点数?我知道我可以用正则表达式来做,但认为可能有更好的方法
谢谢
就我的问题所涉及的数学而言,我有点超出我的深度,所以我为任何不正确的命名道歉.
我正在考虑使用scipy函数leastsq,但我不确定它是否是正确的函数.我有以下等式:
eq = lambda PLP,p0,l0,kd : 0.5*(-1-((p0+l0)/kd) + np.sqrt(4*(l0/kd)+(((l0-p0)/kd)-1)**2))
Run Code Online (Sandbox Code Playgroud)
除了kd(PLP,p0,l0)之外,我有所有项的数据(8套).我需要通过上述方程的非线性回归找到kd的值.从我读过的例子来看,lesssq似乎不允许输入数据,以获得我需要的输出.
谢谢您的帮助
我已经找到了如何按照此处所述的乳胶出口并排数据:http: //permalink.gmane.org/gmane.emacs.orgmode/52978
但问题是,当我尝试附加一个#+ CAPTION或#+ NAME /#+ LABEL时,输出会出现乱码,标题会移动到多行以及图片上.
#+CAPTION: Some desription.
#+LABEL: mylabel
#+ATTR_LATEX: width=5cm
| [[./test.png]] | [[./test2.png]] |
Run Code Online (Sandbox Code Playgroud)
我尝试使用单个图形相同的语法,它工作正常:
#+CAPTION: Some desription.
#+LABEL: mylabel
#+ATTR_LATEX: width=5cm
[[./test.png]]
Run Code Online (Sandbox Code Playgroud)
有谁知道如何让这个工作?
python ×8
matplotlib ×4
numpy ×2
arrays ×1
bash ×1
emacs ×1
inheritance ×1
latex ×1
legend ×1
numbers ×1
oop ×1
org-mode ×1
pythonpath ×1
scipy ×1
textbox ×1