text
プロパティを間違った方法で使用しています。
ggvis
それ自体はデータ バインディングと R での処理のみを実行します。次に、ggvis
オブジェクトを で定義された視覚化文法に「変換」します。これは、実際のレンダリングを実行するために のvega.js
上に構築されます。d3.js
したがって、は、で Axes プロパティを定義するためadd_axis
の単純なラッパーです。詳細については、このドキュメントを参照してください。ggvis
vega.js
add_axis()
関数に渡す引数は、 で指定する JSON 仕様に 1 対 1 で対応していることがわかりますvega.js
。したがって、properties=axis_props(...)
inはAxis プロパティのプロパティggvis
にマップされます(混乱するかもしれませんが、上記のリンクをクリックすると、そこに階層が表示されます)。
プロパティパラメータが定義します。ここでドキュメントを引用しています。
カスタム軸スタイリングのオプションのマーク プロパティ定義。入力オブジェクトには、目盛り (メジャーとマイナーの両方)、majorTicks、minorTicks、ラベル、および軸 (軸線) のサブオブジェクトを含めることができます。
したがって、プロパティパラメータは、 、、および線のスタイリングを含む、スタイリングのみを変更することになっています。labels
ticks
axis
あなたのコード:
properties=axis_props(labels=list(angle=90, fontSize = 10,
text = c("one","two","three"))
として抽象化できます。
properties=axis_props(labels=list(...))
これは、上記の議論に基づいて、 axisのスタイリングlabels
を操作しています。それぞれlabel
は単純な SVG<text>
要素であり、その調整可能なプロパティはこのドキュメントにあります。また、軸ラベルのスタイルを変更すると、すべてのx 軸ラベルのスタイルが変更されます。
最終的には、 を指定することで、すべての x 軸の目盛りラベルを配列text = c("one","two","three")
に手動で設定し、結合して string を形成することになります。 ["one", "two", "three"]
one,two,three
解決
デフォルトでは、次のggvis
ような軸のプロパティが決定されます。
- 軸の目盛りはいくつですか?
- 目盛りの値は何ですか?
これは、 を指定せずにadd_axis("y", ...)
y 軸を適切にレンダリングする方法です。values
ただし、関数でプロパティを指定することにより、ティックを手動でオーバーライドできますadd_axis()
。
例えば、
data.frame(x = c(1,2,3), y = c(1,2,3) ) %>%
ggvis(~x,~y ) %>%
layer_lines() %>%
add_axis("x",
value=c(1, 2, 3),
properties=axis_props(
labels=list(angle=90, fontSize = 10)))
これにより、次のことがわかります。

ラベルは数字であり、必要な文字列ではないため、より近いですが、まだそこにはありません。
最後に、ラベルを変更するには、X 軸のデータを次のように数値から因子に変更するだけです。
x <- factor(c(1,2,3), labels=c("one", "two", "three"))
data.frame(x = x, y = c(1,2,3) ) %>%
ggvis(~x,~y ) %>%
layer_lines() %>%
add_axis("x", values=x,
properties=axis_props(labels=list(angle=90, fontSize = 10)))
それはあなたに与えるでしょう