我正在尝试绘制一些我从外部来源提取的成绩.日期格式如下所示:
2011-08-23T17:07:05
Run Code Online (Sandbox Code Playgroud)
所以我解析它strptime(date, "%FT%X")并得到一个POSIXlt.我最终得到了一个完整的数据框,如下所示:
date subject grade
1 2011-08-23 17:07:05 AP Biology 95.83
2 2011-08-24 17:07:03 AP Biology 95.83
3 2011-08-25 17:08:27 AP Biology 95.83
4 2011-08-17 17:05:54 US History 157.14
5 2011-08-18 17:05:24 US History 157.14
6 2011-08-19 17:05:35 US History 157.14
7 2011-08-22 17:06:25 US History 157.14
8 2011-08-23 17:07:05 US History 157.14
9 2011-08-24 17:07:03 US History 157.14
10 2011-08-25 17:08:27 US History 157.14
11 2011-08-19 17:05:35 Yearbook 0.00
12 2011-08-22 17:06:25 Yearbook …Run Code Online (Sandbox Code Playgroud) 我有一个定义了许多类的python模块:
class A(object):
def __call__(self):
print "ran a"
class B(object):
def __call__(self):
print "ran b"
class C(object):
def __call__(self):
print "ran c"
Run Code Online (Sandbox Code Playgroud)
从模块中,我如何添加一个给我所有类的属性?
dir()给出了我模块中所有内容的名称,但我似乎无法弄清楚如何从类的名称到模块内的类本身.
从模块外部,我可以简单地使用getattr(mod, 'A'),但我没有self模块本身内的那种模块.
这似乎很明显.有人能告诉我我错过了什么吗?
我正在与ggplot2苦苦挣扎,并希望通过示例学习更多.
我有很多数据看起来像这样生成的东西:
data.frame(version=c('v1', 'v1', 'v1', 'v1', 'v2', 'v2', 'v2', 'v2'),
platform=c('linux', 'linux', 'mac', 'mac',
'linux', 'linux', 'mac', 'mac'),
type=c('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b'),
count=floor(runif(8, 0, 10000)))
Run Code Online (Sandbox Code Playgroud)
我经常barplot给我画一个给定操作系统的堆积条形图(通过切片cast,但我还没有得到我想要的ggplot2.
我可以通过做这样的事情来设法绘制单个平台(假设上面的内容保存为sample):
qplot(version, a, data=cast(sample[sample$platform=='linux',],
version ~ type, value="count"),
geom='bar')
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望按类型堆叠(a在此示例中明确指出- 只有两种类型),然后每个平台有一个并排显示在按版本分组的同一图表上.
也就是说,对于每个版本,我都想要三个条形图(每个平台一个条形图),每个条形图有两个堆栈(按类型).
我有一个cocoa应用程序,它有一个通过NSArrayController绑定到模型的TableView.
该应用程序按我的意愿工作,但表的默认排序顺序是错误的.
buildwatch http://public.west.spy.net/BuildWatch.png
我通常启动程序并单击最后一个标题两次以使其以正确的方式排序.是否有一种方法可以在nib/bindings /中指定默认的排序顺序,或者以编程方式告诉它如果我在那里点击两次会发生什么?或者甚至只记得以前的排序顺序?
我已经设法让ggplot2从数据集创建我想要的几乎所有的情节,但我无法弄清楚如何标记我的观点.
鉴于数据看起来像这样:
sample <- data.frame(rowid=seq(100), a=runif(100), b=runif(100, .5, 1.5))
Run Code Online (Sandbox Code Playgroud)
我可以创建一个比较这两样东西的情节(考虑到我的真实和更好的标签看起来不那么有趣,但这有一个很好的近似):
ggplot(data=sample) +
geom_point(aes(rowid, a), color="#990000", alpha=0.4) +
geom_smooth(aes(rowid, a), color='#990000') +
geom_point(aes(rowid, b), color='#000099', alpha=0.4) +
geom_smooth(aes(rowid, b), color='#000099') +
labs(x='Trial', y='Time')
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到一个显示红色和蓝色的图例?
编辑
感谢baptiste的评论,我现在有以下内容:
wide = melt(sample, id="rowid")
ggplot(data=wide) +
geom_point(aes(rowid, value, color=variable), alpha=0.1) +
scale_alpha(0.3) +
scale_colour_manual(name="Variables", values=c("b"="#990000", "a"="#000099")) +
geom_smooth(aes(rowid, value, color=variable)) +
labs(x='Trials', y='Time')
Run Code Online (Sandbox Code Playgroud) 我想在我的组织模式文档中包含内联图像,但我真的需要一个用于 HTML 导出的 png 和用于 LaTeX 导出的 pdf 以使其看起来不错。有没有办法表达这一点?
像这样:const void*test = sqlite3_column_blob(stat,1); 我可以删除或删除[]测试吗?
我有一个脚本,使用相同的数据双重插入数据库.有没有一个好方法(没有扫描,将每个记录插入一个数组,然后删除重复的数组条目)?
有没有办法template.Template从 a创建一个string而不给它一个名字?查看文档,似乎New(name string)是解析模板字符串的唯一方法。我编写了一个辅助函数,它使用迭代器生成一个唯一的名称。
var seq chan int
func init() {
seq = make(chan int)
go func() {
for i := 0; true; i++ {
seq <- i
}
}()
}
func TemplateToString(tmplStr string, data interface{}) (string, error) {
name := fmt.Sprintf("template-%d", <-seq)
tmpl, err := template.New(name).Parse(tmplStr)
if err != nil {
return "", err
}
buffer := bytes.Buffer{}
err = tmpl.Execute(&buffer, data)
return buffer.String(), err
}
Run Code Online (Sandbox Code Playgroud)
这有效,但如果可能的话,我更喜欢更清洁的方法。