使用 PyPlot 在 Julia 中将散点图标记作为函数参数传递

Passing Scatter Plot Marker as Function Parameter in Julia Using PyPlot

我正在尝试使用 PyPlot 作为后端将标记设置传递给 Julia 中的散点图 - 例如,Julia 使用“marker=:star”语法;如何将此“:star”设置作为函数参数传递(这不能用作字符串)?

函数调用(不起作用):

   using DataFrames
   pyplot()

   df=DataFrame(someData)
   arComponents=["star","square"]
   nMaxComponents=3
   doPCA(df,arComponents,nMaxComponents)

函数代码:

# Function doPCA: performs PCA, displays scatter plot
# Inputs:  df (dataframe), arMarkers (array, plot marker settings),
#             nMaxComponents (integer, maximum # of PCA components)
#
function doPCA(df, arMarkers, nMaxComponents)
   # skipped PCA code
   nCount=1
   while nCount < nMaxComponents
      pltGet=scatter(...,marker=arMarkers[nCount],...)
      nCount=nCount+1
   end
end

Julia 是一种相当新的语言,文档稀疏且分散,但这本质上是一个 PyPlot 问题。散点图标记是一个符号,应按原样传递。因此,将这些数据作为参数传递的正确代码是:

函数调用(有效):

   using DataFrames
   pyplot()

   df=DataFrame(someData)
   arComponents=Symbol[:star, :square]
   doPCA(df,arComponents)

顺便说一句,虽然 Julia 的错误消息有点笨拙,但提示在错误输出中,无论它报告您的伪造参数是否采用正确的 Symbol[...,...] 格式。