如何将函数传递给julia Gadfly主题参数
我画了一个这样的情节:如何将函数传递给julia Gadfly主题参数,julia,gadfly,Julia,Gadfly,我画了一个这样的情节: plot( layer(x=sort(randn(1000),1), y=sort(randn(1000),1), Geom.point), layer(x=[-4,4], y=[-4,4], Geom.line(), Theme(default_color=color("black")))) 如您所见,点周围的白色圆圈使绘图的高密度部分几乎为白色 我想将点的外圆颜色更改为黑色(或蓝色),以更好地显示点确实存在 从这个角度看,Theme()的highlight
plot(
layer(x=sort(randn(1000),1), y=sort(randn(1000),1), Geom.point),
layer(x=[-4,4], y=[-4,4], Geom.line(), Theme(default_color=color("black"))))
如您所见,点周围的白色圆圈使绘图的高密度部分几乎为白色
我想将点的外圆颜色更改为黑色(或蓝色),以更好地显示点确实存在
从这个角度看,Theme()
的highlight\u color
参数可能会这样做,但它将函数作为参数
我不明白这是怎么回事。有什么想法吗?参数名原来是
discrete\u highlight\u color
它应该是一个修改用于绘图的颜色的函数,
通常通过使其更亮(“色调”)或更暗(“阴影”)。
在我们的例子中,我们可以忽略当前颜色并返回黑色
using Color
using Gadfly
plot(
layer(
x = sort(randn(1000),1),
y = sort(randn(1000),1),
Geom.point,
# Theme(highlight_width=0.0mm) # To remove the border
Theme( discrete_highlight_color = u -> LCHab(0,0,0) )
),
layer(
x = [-4,4],
y = [-4,4],
Geom.line(),
Theme(default_color=color("black"))
)
)
为了找到正确的参数,我首先键入
code_lowered( Theme, () )
它给出了参数列表,
然后
这显示了默认值是如何定义的。对于像我这样最近试图解决这个问题的人,我发现最好的方法是通过主题设置
highlight\u width=0pt
比如说
plot(x=rand(10),y=rand(10),Theme(highlight_width=0pt))
我在下图中有一些附加主题无法添加图片。这是一个链接:加1,用于说明如何获得解决方案。我认为这很有帮助。@VincentZoonekynd最后一行代码在Julia 0.6.3中返回此错误:
error:function有多个方法;请指定类型签名
,尽管使用Gadfly并传递函数。你知道怎么解决吗?@VincentZoonekyndColor
与Julia 0.6.3不兼容(ERROR:Color无法安装,因为它没有支持Julia 0.6.3的版本。
)。我试过了,效果很好。这只是一个字符的变化,太小,我建议编辑。
plot(x=rand(10),y=rand(10),Theme(highlight_width=0pt))