问题标签 [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.
r - R - 修改(ggplot)小提琴图的宽度作为 y 变量的函数
我想修改使用 ggplot2 包构建的小提琴图的宽度。
背景如下:我得到了一个数据集,该数据集计算了粒子特定大小的观察次数。这个大小将是我的 y 变量,我称之为“事件”的事件计数。
我简化了数据,所以我只查看 2 个不同的集合(由“id”表示),融合到 1 个数据帧中。
据我所知,小提琴图是根据特定值的出现次数计算小提琴的宽度。因为我希望绘图的 y 轴是大小,所以我需要一个数据框,其中不再包含“事件”列,而是包含新行,具体取决于“事件”的值。
我不知道如何更容易地重塑它,所以我正在运行一个带有计数器变量和 if 子句的 for 循环,用于检查当前迭代必须添加到新数据帧 (dt2) 中的行类型。
然后我使用 geom_violin() 使用 ggplot 包进行绘图。
到目前为止一切顺利,但这并不是我想要的。我希望小提琴图可以为我提供具有此特定尺寸的所有粒子的总体积,而不是特定尺寸的粒子数。即小提琴的宽度应该是计数(因此 dt1 的“事件”值或具有特定参数 dt2 的行数)和尺寸本身的函数。这意味着我希望小提琴随着更高的 y 值变得更宽。
考虑例如颗粒的球形形状,尺寸为 10 的“事件”值 7 应给出 7 * (4/3 * pi * (10/2)^3) 的宽度。然而,对于大小为 50 的粒子,相同的“事件”值应导致计算出的宽度为 7 * (4/3 * pi * (50/2)^3)。
有没有办法改变 geom_violin 图的宽度计算作为 y 变量的函数?不幸的是,我无法真正更改数据框以考虑体积的数学公式(即,将“事件”与球形体积公式相乘),因为尺寸 > 100 和“事件”值 > 1000 的粒子的行数达到天文高度(将导致我的数据包含约 10,000,000,000 行的数据框)。
任何想法都非常感谢。
提前致谢!
r - 使用 ggplot2 在分割小提琴图上叠加散点
我按照这个不错的答案在 2x2 设计中生成分裂小提琴图
现在想象这些数据来自不同主题的重复测量。另外,我想在散点图中绘制单个数据(我知道该图可能最终太忙,我想先看看它)。
我快到了,但有一个小错误可能很容易修复。如果有更好的方法可以做到这一点,我会提供一个完整的工作示例。
我直接从上一个问题中复制了第一部分:
我添加subj
到我的数据框中,因为我想绘制每个主题的平均值
到目前为止,效果很好。现在我尝试为每个主题添加我的平均值
我得到错误:Error in eval(expr, envir, enclos) : object 'dens' not found
r - 对于geom_violin,如何指定所有小提琴的总面积?
geom_violin
在对within的调用中ggplot2
,您可以通过指定 来指定每把小提琴的面积应与组成该小提琴的观察次数成正比scale="count"
。
我假设这是通过获取一些总面积(我们称之为数量 X)并在所有要绘制的小提琴之间按比例划分的,从而在内部进行操作。这就是我想要的,除了如果组之间的 N 存在足够大的差异以致某些组的 N 相对较低,这可能导致小提琴非常窄。在我的情况下,这只会使填充颜色有点难以看到。
我认为这可以在很大程度上解决,至少在我的情况下,只需将 X 扩展一点,以便真正小的小提琴获得足够的区域以保持可读性。换句话说,我想根据观察次数保留小提琴之间的面积变化,但增加小提琴之间划分的总面积的“池”,以便每个小提琴都稍微变大。
任何人都知道如何做到这一点?为此必须有一个切换。我尝试过对geom_violin
诸如width
, size
,等的参数大惊小怪violinwidth
,但到目前为止还没有运气......
编辑:一个可以试验的无聊但可重复的“样本”数据集的代码。
boxplot - 基于实际数据或kde的seaborn小提琴图中的箱线图?
我正在使用带有 inner='box' 和 cut=0 的 seaborn violinplot。
我看到箱线图有一条一直延伸到切口的线。这表明箱线图不是根据数据本身计算的,而是在 kde 上计算的。这个对吗?
r - 尝试使用 R ggplot2 创建小提琴图时获得类似图像的奇怪散点图
我正在尝试创建一个小提琴图,将遗传变异类别与手术时的年龄进行比较,我得到了一些非常奇怪的结果。
我一直在使用以下指南,这使得创建小提琴图看起来很容易:
python - Jupyter Notebook 中的 Seaborn 和 plotly 小提琴情节杀死内核
我正在尝试在 Jupyter 笔记本中使用 seaborn 0.7.1 生成小提琴图。Boxplot 适用于相同的数据,但 violinplot 会导致内核“意外死亡”。
我也尝试过使用 plotly 1.12.9 来绘制小提琴图(按照 plotly 网站上的示例),但这也会杀死内核。
有谁知道错误可能是什么或者我应该如何调试它?
这是我用于 seaborn 的代码:
这是我用于情节的代码:
Jupyter Notebook 未显示的错误是:
Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
r - 小提琴图 ggplot2 与列的宽度
我对 R 很陌生,我只将它用于可视化,所以我可能会遗漏一些简单的东西。
我想要的是,我有两列应该是 x 和 y 轴。我拥有的第三列应该定义图形的宽度。尽管我从不同的答案中尝试了很多东西,但我的代码并没有走得太远。假设我的代码这么远:
这并没有真正取得任何成就。
我有一张这样的桌子:
X 轴应该是研究列,y 应该是Col0
,小提琴图的宽度应该是值列。我无法拆分 col0,因为我只有数据作为范围。
任何有关检查内容,如何执行此操作的指针将不胜感激。抱歉,如果我错过了类似的问题。
提前致谢
python - seaborn violinplot 超出有效范围
我正在使用 seaborn 创建小提琴图。现在我正在创建不成比例的小提琴图(所以所有值都在 0 和 1 之间),但生成的小提琴图非常偏离。它的底部范围为负值,其顶部范围为大于 1 的值。下面是我运行测试它的示例:
显然,没有一个值超出范围 [0,1],但小提琴图看起来很诡异:
帮助将不胜感激!