問題タブ [violin-plot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3869 参照

r - R - (ggplot) バイオリン プロットの幅を y 変数の関数として変更します

ggplot2 パッケージで作成しているバイオリン プロットの幅を変更したいと考えています。

背景は次のとおりです。粒子の特定のサイズの観測数をカウントするデータセットを取得します。このサイズは私の y 変数、つまり「インシデント」と呼ぶインシデントの数になります。

データを単純化したので、1 つのデータ フレームに溶け込んだ 2 つの異なるセット (「id」で示される) のみを見ています。

私の知る限り、バイオリン プロットは、特定の値の出現回数に基づいてバイオリンの幅を計算しています。プロットの y 軸をサイズにしたいので、「インシデント」列を含まず、代わりに「インシデント」の値に応じて新しい行を含むデータ フレームが必要です。

これを簡単に再形成する方法がわからなかったので、現在の反復で新しいデータ フレーム (dt2) に追加する必要がある行の種類を確認するために、カウンター変数と if 句を使用して for ループを実行しています。

次に、geom_violin() を使用して ggplot パッケージでプロットします。

ここまでは良いのですが、これはまさに私が望んでいるものではありません。特定のサイズの粒子の数ではなく、バイオリン プロットで、この特定のサイズのすべての粒子の全体的な体積を取得したいと考えています。つまり、バイオリンの幅は、カウント (つまり、dt1 の「インシデント」値または dt2 の特定のパラメーターを持つ行数) とサイズ自体の関数である必要があります。つまり、バイオリンの幅を y 値を高くして広くしたいということです。

たとえば、粒子の球形を考慮すると、サイズ 10 の「インシデント」値が 7 の場合、幅は 7 * (4/3 * pi * (10/2)^3) になります。ただし、サイズが 50 のパーティクルの場合、同じ「インシデント」値は、計算された幅が 7 * (4/3 * pi * (50/2)^3) になるはずです。

y 変数の関数として geom_violin プロットの幅計算を変更する方法はありますか? 残念ながら、サイズが 100 を超え、「インシデント」値が 1000 を超える粒子の行数が到達するため、ボリュームの数式を考慮するようにデータ フレームを実際に変更することはできません (つまり、「インシデント」に球状ボリュームの数式を掛けます)。天文学的な高さ (私のデータでは ~10,000,000,000 行のデータ フレームになります)。

どんなアイデアでも大歓迎です。

前もって感謝します!

0 投票する
1 に答える
1476 参照

r - ggplot2 を使用してスプリット バイオリン プロットに散布点を重ねる

この素敵な答えに従って、2x2 デザインで分割ヴァイオリン プロットを生成しました

ここで、これらのデータがさまざまな被験者で繰り返し測定されたものであると想像してください。さらに、個々のデータを散布図にプロットしたいと思います (プロットが忙しすぎる可能性があることはわかっています。最初にそれを確認したいと思います)。

私はほとんどそこにいますが、おそらく簡単に修正できる小さなエラーがあります. これを行うためのより良い方法がある場合に備えて、実際の例全体を含めます。

この最初の部分は、前の質問から直接コピーしました。

subj各被験者の平均をプロットしたいので、データフレームに追加しました

これまでのところ、うまく機能します。今、各被験者の平均値を追加しようとしています

エラーが発生します:Error in eval(expr, envir, enclos) : object 'dens' not found

0 投票する
1 に答える
193 参照

boxplot - 実際のデータまたはkdeに基づくシーボーンバイオリンプロットの箱ひげ図?

inner='box' で cut=0 の seaborn バイオリンプロットを使用しています。

箱ひげ図には、カットまで伸びる線があることがわかります。これは、箱ひげ図がデータ自体ではなくkdeで計算されたことを示唆しています。これは正しいです?

0 投票する
1 に答える
97 参照

r - プロットに追加情報を追加!R

さまざまなプロットを追加し、次の行を使用して、次のバイオリン プロットを作成しました。

ここに画像の説明を入力

ここで、次の図の X 軸に見られるような線を Y 軸に追加したいと思います。

ここに画像の説明を入力

ご覧のとおり、X 軸のこの線は、サンプルがどこから来た大陸に関する情報を追加します。

この情報をプロットの Y 軸に追加するにはどうすればよいですか? さらにコードを提供する必要がありますか? ありがとう!

0 投票する
0 に答える
90 参照

r - R ggplot2 を使用してバイオリン プロットを作成しようとすると、奇妙な散布図のような画像が表示される

遺伝的バリアント クラスを手術時の年齢と比較するバイオリン プロットを作成しようとしていますが、非常に奇妙な結果が得られます。

以下のガイドを使用して、ヴァイオリン プロットを簡単に作成できるようにしています。

http://www.sthda.com/english/wiki/ggplot2-violin-plot-quick-start-guide-r-software-and-data-visualization

病原性多様体の有無にかかわらず、手術時の年齢

0 投票する
1 に答える
1291 参照

python - Jupyter NotebookのキルカーネルのSeabornとプロットリーバイオリンプロット

Jupyter ノートブックで seaborn 0.7.1 を使用してバイオリン プロットを生成しようとしています。Boxplot は同じデータに対して正常に動作しますが、violinplot はカーネルを「予期せず停止」させます。

また、plotly 1.12.9 を使用してヴァイオリン プロットを実行しようとしましたが (plotly Web サイトの例に従って)、カーネルも強制終了します。

エラーが何であるか、またはこれをデバッグする方法について誰かが知っていますか?

これは私がシーボーンに使用したコードです:

そして、これは私がplotlyに使用するコードです:

Jupyter Notebook が表示していなかったエラーは次のとおりです。

Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

0 投票する
2 に答える
727 参照

r - 列からの幅を持つバイオリンプロットggplot2

私はRにかなり慣れていないので、視覚化にのみ使用するため、単純なものが欠けている可能性があります。

私が欲しいのは、x軸とy軸である2つの列があるということです。私が持っている3番目の列は、グラフの幅を定義する必要があります. さまざまな答えから多くのことを試しましたが、コードはうまくいきませんでした。私がコードでこれまでのところだとしましょう:

これは実際には何も達成していません。

次のようなテーブルがあります。

X 軸はスタディ列、Y 軸はCol0値列、ヴァイオリン プロットの幅は値列です。データを範囲としてしか持っていないため、col0 を分割できません。

何を確認するか、これを行う方法についての指針をいただければ幸いです。同様の質問を見逃していたらすみません。

前もって感謝します

0 投票する
0 に答える
3561 参照

python - seaborn のバイオリン プロットが有効範囲外

seaborn を使用してバイオリン プロットを作成しています。現在、比例値からバイオリン プロットを作成しています (したがって、すべての値は 0 と 1 の間にあります) が、結果のバイオリン プロットはかなりずれています。その下の範囲は負の値になり、上の範囲は 1 より大きい値になります。以下は、テストのために実行した例です。

明らかに [0,1] の範囲外の値はありませんが、ヴァイオリン プロットはすべておかしなことに見えます。

範囲外のバイオリン プロット

助けていただければ幸いです。