我有一个问题试图让我的日期刻度在matplotlib中旋转.下面是一个小样本程序.如果我尝试在末尾旋转刻度线,则刻度线不会旋转.如果我尝试旋转注释'崩溃'下显示的刻度,则matplot lib崩溃.
只有当x值是日期时才会发生这种情况.如果我用调用中dates的变量替换变量,则调用在内部工作正常.tavail_plotxticks(rotation=70)avail_plot
有任何想法吗?
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt
def avail_plot(ax, x, y, label, lcolor):
ax.plot(x,y,'b')
ax.set_ylabel(label, rotation='horizontal', color=lcolor)
ax.get_yaxis().set_ticks([])
#crashes
#plt.xticks(rotation=70)
ax2 = ax.twinx()
ax2.plot(x, [1 for a in y], 'b')
ax2.get_yaxis().set_ticks([])
ax2.set_ylabel('testing')
f, axs = plt.subplots(2, sharex=True, sharey=True)
t = np.arange(0.01, 5, 1)
s1 = np.exp(t)
start = dt.datetime.now()
dates=[]
for val in t:
next_val = start + dt.timedelta(0,val)
dates.append(next_val)
start = next_val
avail_plot(axs[0], dates, …Run Code Online (Sandbox Code Playgroud) 我正在使用的系统gnuplot安装在/usr/bin.我没有root,但我需要更新的版本gnuplot,所以我安装了它$HOME/usr/bin.
我添加$HOME/usr/bin到我的路径中,但/usr/bin如果我只使用gnuplot命令,它仍会执行该路径.我宁愿不必$HOME/usr/bin/gnuplot每次都必须使用它.
我如何告诉Linux使用我的主目录中的那个,而不是那个/usr/bin?
这是我第一次使用ORM,所以我不确定处理这个问题的最佳方法.我有一对多的关系,每个家长可以有很多孩子:
class Parent(Base):
__tablename__ = 'Parent'
name = Column(String(50))
gid = Column(String(16), primary_key = True)
lastUpdate = Column(DateTime)
def __init__(self,name, gid):
self.name = name
self.gid = gid
self.lastUpdate = datetime.datetime.now()
class Child(Base):
__tablename__ = 'Child'
id = Column(Integer, primary_key = True)
loc = Column(String(50))
status = Column(String(50))
parent_gid = Column(String(16), ForeignKey('Parent.gid'))
parent = relationship("Parent", backref=backref('children'))
Run Code Online (Sandbox Code Playgroud)
现在,通过网络进行更新.当有更新时,我想更新相应的Parent行(更新lastUpdate列)并将新子行插入数据库.我不知道如何用ORM做到这一点.这是我失败的尝试:
engine = create_engine('sqlite+pysqlite:///file.db',
module=dbapi2)
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)()
def addChildren(parent):
p = session.query(Parent).filter(Parent.gid == p1.gid).all()
if len(p) == 0:
session.add(p1)
session.commit()
else:
updateChildren = …Run Code Online (Sandbox Code Playgroud) 我正在学习并试图了解如何从通用错误类型中获取更详细的错误信息.我将使用的示例来自网络包,特别是DialTimeout函数.
签名是
func DialTimeout(network, address string, timeout time.Duration) (Conn, error)
的错误类型仅定义了一个Error() string函数.如果我想找出DialTimeout失败的确切原因,我该如何获取该信息?我发现我可以使用类型断言来获取net.Error特定错误:
con, err := net.DialTimeout("tcp", net.JoinHostPort(address, "22"),
time.Duration(5) * time.Second)
if err != nil {
netErr, ok := err.(net.Error)
if ok && netErr.Timeout() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
但这只能告诉我是否有超时.例如,假设我想区分拒绝连接和没有主机路由.我怎样才能做到这一点?
也许DialTimeout太高级了,不能给我那种细节,但即使看着syscall.Connect,我也看不出如何得到具体的错误.它只是说它返回通用错误类型.将它与Posix connect进行比较,它会让我知道它为什么失败了各种返回码.
我的一般问题是:error如果golang文档没有告诉我可能返回什么类型的错误,我应该如何从泛型类型中提取错误详细信息?
我正在开发一个大应用程序(ns2),有人在那里放一个退出(1),没有任何调试或打印语句,它正在执行.我不想手动检查调用exit的每个文件来找出程序退出的原因.有可能确定程序退出的位置吗?它在Linux上运行并用C++编码.是否有可能在gdb中做这样的事情?