2011-04-21 94 views
10

昨天,虽然在"Optimally picking one element from each list"问题中增加了一些时间图,但我还记得我几年前做过的一个数学组帖子("Keeping plot annotations after regenerating a plot")。保存情节注释

我很高兴地注释我的情节(手动),当我认为一些轴标签会很好。问题是,重新绘制轴标签的情节会破坏您的手动注释。

看样子你可以找到用户添加一个名为PIC的情节在这里:Rest[pic[[1, 1]]],所以如果你再生情节一样PIC2你能得到你的注释回来,如果你使用:

Insert[pic2, Rest[pic[[1, 1]]], {1, 1}] 

我记得大卫公园(演示文稿包的作者)强烈反对手动注释。我自己做了一些程序化标签,但有时在程序控制下放置标签太困难了,就像这里(请注意,我不太喜欢PlotLegends,特别是因为某些颜色彼此接近):

top-answerers

现在已经太迟了,我的杂草已经扔掉了剧情的原创,但我想知道这个问题目前的状态是什么。

  • 有没有更好的方法来做到这一点?
  • 这种方法有多普遍?它是否适用于所有情节和图表类型?
  • 它适用于所有版本吗? (5.2以上)
  • 任何世界资源学院计划改善处理用户添加的情节?

顺便说一句,在我的数学组发布的伎俩与上面显示的和前10名情节中使用的略有不同。虽然原理是一样的。


EDIT

我把代码,以使SO数据图像Mathematica Toolbag上面的一个。

编辑

代码现在被移到由Brett冠军更合适的问题:How do I access the StackOverflow API from Mathematica

+3

+100对数图!我几乎相信这个问题只是炫耀情节的借口...... – Simon 2011-04-21 12:42:40

+0

我同意西蒙!你从哪里获得数据? – 2011-04-21 12:43:08

+0

@belisarius和@Mark,可能来自[数据资源管理器](http://data.stackexchange.com/),并且只抓住了前10名数学家的回答者。可悲的是,我没有回答足够多的问题在那个名单上......感叹。 – rcollyer 2011-04-21 12:51:31

回答

4

下面是一种方法,虽然有点丑,但似乎可以合理地适用于较小的情节注释。

在通过Drawings tools添加注释之后,附加信息将与图形一起存储,并且可以通过例如选择图形括号和使用Show Expression(Mac上的Shift-Command-E)进行检查。附加信息通常可以通过剪切和粘贴或使用Cases来挑选,然后可以使用Epilog将其添加到新的修改后的图中。

例如

Plot[Sin[x], {x, 0, 6 \[Pi]}] 

添加几个注解给出以下:

enter image description here

分配名称plotgraphic上述图像,可产生本新型改性情节添加了注释如下所示(例如)

Labeled[Plot[Sin[x], {x, 0, 8 \[Pi]}, 
    Epilog -> Rest[Cases[plotgraphic, _List][[1]]]], "Sine Plot"] 

enter image description here

这可能是尴尬的,至少可以说,该方法无疑可以得到改善。这也可能是其他人已经做的事情。尽管如此,它给出了一个情节,注释是以“编程方式”呈现的,并且由于没有人提及Epilog,我决定可能值得发布。

+1

您也不需要指定第一个图的名称,而只需将图像直接复制粘贴到“Cases”命令 – Simon 2011-04-26 09:17:08

+0

@Simon谢谢。这是一个很好的 – tomd 2011-04-26 09:22:47

5

就个人而言,我同意大卫公园,程式除了标注的是优越的。它也可能更强大,并可用于未来版本的Mathematica。我真的很希望看到绘图工具调色板有所改进,我希望更清楚地看到手动添加的多个注释会出现在生成的Graphics对象中。如果有惰性HeadAddedAnnotation或一些这样的,那么你可以找到所有这些编辑程序通过

Cases[editedPic, _AddedAnnotation, Infinity] 

正因为如此,我发现自己挖通过图像的InputForm,我不相信,你的Rest[pic[[1, 1]]]总是会工作,特别是在未来的版本。

+0

这与我在数学组中提出的相同,但我想将它放在一个选项中:图形[原始绘图的东西,用户添加},绘图范围 - >自动等等, UserAdditions-> {GraphicsStuff,GraphicsStuff} ] – 2011-04-21 14:47:18