rpy2を使用してプロットのR凡例呼び出しにPythonリストを渡そうとすると問題が発生します。次のように、既存の辞書からテキスト名とそれに対応する記号のリストを生成します。
dataDict = {'data':{...},
'symbols':{'xylem':14,'groundwater':17,'lagoon':16,'stream':15}}
nameListForLegend = [name for name in dataDict["symbols"]]
symbolListForLegend = [dataDict['symbols'][category] \
for category in dataDict['symbols']]
nameListForLegend 変数は呼び出しで機能しますが、symbolListForLegend は機能しません。
r.legend(1.5, -42, nameListForLegend,
pch = symbolListForLegend,cex=3,col="black",border = 0)
次のようなハッキーなソリューションを使用して、R オブジェクトとして渡そうとしました。
#after converting each list element to a string
symbolListString = ",".join(symbolListForLegend)
symbolListForLegend = robjects.r('list('+symbolListString+')')
すべてのリターン:
RRuntimeError: Error in plot.xy(xy.coords(x, y), type = type, ...) :invalid plotting symbol
よくあることですが、ここでは単純なものが欠けています。適切なドキュメントへのヘルプまたは指示をいただければ幸いです。
ありがとうございました。