- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个数据框:
df1
SeqTech NMDS1 NMDS2 NMDS3 C1 C2 C3
AM.AD.1 Sanger -1.2408789 0.39893503 -0.036690753 -1.0330785 -0.009904179 -0.06261568
AM.AD.2 Sanger -0.9050894 0.55943858 -0.121985899 -1.0330785 -0.009904179 -0.06261568
AM.F10.T1 Sanger -0.9059108 0.09466239 -0.033827792 -1.0330785 -0.009904179 -0.06261568
AM.F10.T2 Sanger -0.8511172 0.21396548 -0.061612450 -1.0330785 -0.009904179 -0.06261568
DA.AD.1 Sanger -1.1390353 0.05166118 0.306245704 -1.0330785 -0.009904179 -0.06261568
DA.AD.1T Sanger -1.2072895 0.06963215 0.241758582 -1.0330785 -0.009904179 -0.06261568
DA.AD.2 Sanger -1.1279367 -0.18692443 -0.092967153 -1.0330785 -0.009904179 -0.06261568
DA.AD.3 Sanger -1.3517083 -0.03651835 0.008165075 -1.0330785 -0.009904179 -0.06261568
DA.AD.3T Sanger -1.2616186 -0.06099534 -0.016942073 -1.0330785 -0.009904179 -0.06261568
DA.AD.4 Sanger -1.2700349 0.10824017 0.150317712 -1.0330785 -0.009904179 -0.06261568
TS1_V2 Pyro454 0.2094447 -0.53605610 0.154892961 0.2750404 0.002636827 0.01667041
TS10_V2 Pyro454 0.3966404 -0.10453275 -0.016794425 0.2750404 0.002636827 0.01667041
TS100_V2 Pyro454 0.2409404 -0.19935538 -0.095123709 0.2750404 0.002636827 0.01667041
TS101.2_V2 Pyro454 0.3576462 0.78659670 -0.393325760 0.2750404 0.002636827 0.01667041
TS103_V2 Pyro454 0.6018257 -0.19066765 0.017434390 0.2750404 0.002636827 0.01667041
TS104_V2 Pyro454 0.2554765 -0.33614221 -0.009296729 0.2750404 0.002636827 0.01667041
TS105_V2 Pyro454 0.2898261 0.74827877 -0.531568414 0.2750404 0.002636827 0.01667041
TS106_V2 Pyro454 0.3539052 0.17369739 -0.181935984 0.2750404 0.002636827 0.01667041
TS107_V2 Pyro454 0.0385423 0.10432457 0.465820636 0.2750404 0.002636827 0.01667041
TS109_V2 Pyro454 0.2525936 -0.33896215 -0.173134963 0.2750404 0.002636827 0.01667041
df2
SeqTech C1 C2 C3
1 Pyro454 0.2750404 0.002636827 0.01667041
2 Sanger -1.0330785 -0.009904179 -0.06261568
我用它来制作 2D 绘图,例如:
ggplot(df1, aes_string(x = "NMDS1", y = "NMDS2" )) +
geom_vline(xintercept = 0, linetype="dashed", size = 0.25, color= "#999999") +
geom_hline(yintercept = 0, linetype="dashed", size = 0.25, color= "#999999") +
# sites
geom_point(size = 2, alpha=0.3, aes_string(color= "SeqTech")) +
#Centroids
geom_point(data = df2, aes_string(x="C1", y="C2", color=df2[,1]), size = 1, alpha=0.7, shape=19 ) +
# Lines
geom_segment(data = df1, aes_string(xend = "C1", yend = "C2", colour=df1$SeqTech ), alpha=0.3, linetype= "dashed" )
所以如果我想用plotly制作类似的东西,但用2D生成3D图。我有制作 3D 的代码,但我不知道如何连接点并生成中心点。
plotly::plot_ly(
x=df1[,2],
y=df1[,3],
z=df1[,4],
type="scatter3d",
mode="markers",
marker=list(size=3, opacity = 0.7),
color=df1[, "SeqTech"],
hovertemplate = paste(df1[,"SeqTech"]))
如何在plotly中添加类似于geom_segment的内容?
非常感谢!!!
dput
的df1
structure(list(Name = c("AM.AD.1", "AM.AD.2", "AM.F10.T1", "AM.F10.T2",
"DA.AD.1", "DA.AD.1T", "DA.AD.2", "DA.AD.3", "DA.AD.3T", "DA.AD.4",
"TS1_V2", "TS10_V2", "TS100_V2", "TS101.2_V2", "TS103_V2", "TS104_V2",
"TS105_V2", "TS106_V2", "TS107_V2", "TS109_V2"), SeqTech = c("Sanger",
"Sanger", "Sanger", "Sanger", "Sanger", "Sanger", "Sanger", "Sanger",
"Sanger", "Sanger", "Pyro454", "Pyro454", "Pyro454", "Pyro454",
"Pyro454", "Pyro454", "Pyro454", "Pyro454", "Pyro454", "Pyro454"
), NMDS1 = c(-1.2408789, -0.9050894, -0.9059108, -0.8511172,
-1.1390353, -1.2072895, -1.1279367, -1.3517083, -1.2616186, -1.2700349,
0.2094447, 0.3966404, 0.2409404, 0.3576462, 0.6018257, 0.2554765,
0.2898261, 0.3539052, 0.0385423, 0.2525936), NMDS2 = c(0.39893503,
0.55943858, 0.09466239, 0.21396548, 0.05166118, 0.06963215, -0.18692443,
-0.03651835, -0.06099534, 0.10824017, -0.5360561, -0.10453275,
-0.19935538, 0.7865967, -0.19066765, -0.33614221, 0.74827877,
0.17369739, 0.10432457, -0.33896215), NMDS3 = c(-0.036690753,
-0.121985899, -0.033827792, -0.06161245, 0.306245704, 0.241758582,
-0.092967153, 0.008165075, -0.016942073, 0.150317712, 0.154892961,
-0.016794425, -0.095123709, -0.39332576, 0.01743439, -0.009296729,
-0.531568414, -0.181935984, 0.465820636, -0.173134963), C1 = c(-1.0330785,
-1.0330785, -1.0330785, -1.0330785, -1.0330785, -1.0330785, -1.0330785,
-1.0330785, -1.0330785, -1.0330785, 0.2750404, 0.2750404, 0.2750404,
0.2750404, 0.2750404, 0.2750404, 0.2750404, 0.2750404, 0.2750404,
0.2750404), C2 = c(-0.009904179, -0.009904179, -0.009904179,
-0.009904179, -0.009904179, -0.009904179, -0.009904179, -0.009904179,
-0.009904179, -0.009904179, 0.002636827, 0.002636827, 0.002636827,
0.002636827, 0.002636827, 0.002636827, 0.002636827, 0.002636827,
0.002636827, 0.002636827), C3 = c(-0.06261568, -0.06261568, -0.06261568,
-0.06261568, -0.06261568, -0.06261568, -0.06261568, -0.06261568,
-0.06261568, -0.06261568, 0.01667041, 0.01667041, 0.01667041,
0.01667041, 0.01667041, 0.01667041, 0.01667041, 0.01667041, 0.01667041,
0.01667041)), row.names = c(NA, -20L), class = "data.frame")
最佳答案
您需要以某种格式准备数据以输入到绘图中,以便绘图地知道哪个点是哪个点,以及哪个点应该用线连接。下面是实现它的一种方法。
library(plotly)
library(dplyr)
# create a data_frame with two record per Name/SeqTech
# This will be provided to plotly for line drawing later
plotly_data <- bind_rows(
data %>% select(Name, SeqTech, x = NMDS1, y = NMDS2, z= NMDS3),
data %>% select(Name, SeqTech, x = C1, y = C2, z= C3)) %>%
# define the group variable which will be used by plotly for line drawing
group_by(Name)
# Here is what the data look like
plotly_data %>% arrange(Name) %>% head(20)
#> Name SeqTech x y z
#> 1 AM.AD.1 Sanger -1.2408789 0.398935030 -0.036690753
#> 2 AM.AD.1 Sanger -1.0330785 -0.009904179 -0.062615680
#> 3 AM.AD.2 Sanger -0.9050894 0.559438580 -0.121985899
#> 4 AM.AD.2 Sanger -1.0330785 -0.009904179 -0.062615680
#> 5 AM.F10.T1 Sanger -0.9059108 0.094662390 -0.033827792
#> 6 AM.F10.T1 Sanger -1.0330785 -0.009904179 -0.062615680
#> 7 AM.F10.T2 Sanger -0.8511172 0.213965480 -0.061612450
#> 8 AM.F10.T2 Sanger -1.0330785 -0.009904179 -0.062615680
#> 9 DA.AD.1 Sanger -1.1390353 0.051661180 0.306245704
#> 10 DA.AD.1 Sanger -1.0330785 -0.009904179 -0.062615680
#> 11 DA.AD.1T Sanger -1.2072895 0.069632150 0.241758582
#> 12 DA.AD.1T Sanger -1.0330785 -0.009904179 -0.062615680
#> 13 DA.AD.2 Sanger -1.1279367 -0.186924430 -0.092967153
#> 14 DA.AD.2 Sanger -1.0330785 -0.009904179 -0.062615680
#> 15 DA.AD.3 Sanger -1.3517083 -0.036518350 0.008165075
#> 16 DA.AD.3 Sanger -1.0330785 -0.009904179 -0.062615680
#> 17 DA.AD.3T Sanger -1.2616186 -0.060995340 -0.016942073
#> 18 DA.AD.3T Sanger -1.0330785 -0.009904179 -0.062615680
#> 19 DA.AD.4 Sanger -1.2700349 0.108240170 0.150317712
#> 20 DA.AD.4 Sanger -1.0330785 -0.009904179 -0.062615680
由 reprex package 于 2021 年 5 月 11 日创建(v2.0.0)
使用上面的数据绘制代码
# And here is the code for line & scatter point drawing with plotly
plotly::plot_ly(data = plotly_data %>% group_by(Name),
x= ~x,
y= ~y,
z= ~z,
# as the group is defined in the data the name can be define by SeqTech
name = ~SeqTech,
type="scatter3d",
mode="lines+markers",
marker=list(size=3, opacity = 0.7),
color= ~SeqTech,
hovertemplate = ~SeqTech)
关于r - 使用 R 中的plotly 进行 3D 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67481798/
我正在尝试编写一个函数来制作绘图并将其自动保存到文件中。 我努力用它来动态地做的技巧[plotname=varname & filename=varname &], 并使其与从循环中调用它兼容。 #
有人可以帮助我如何在绘图条形图中添加“下拉”菜单。 我在以下链接 ( https://plot.ly/python/v3/dropdowns/ ) 上找到了一些信息,但我正在努力调整代码,因此下拉选项
我不确切知道如何表达这一点,但我本质上希望根据其他数据之前的列值将数据分组为 Excel 图的系列。例如: size weight apple 3 35 orange 4
我正在为出版物创建图表并希望它们具有相同的字体大小。 当我用多图创建图形时,字体大小会减小,即使我没有更改tiff() 分辨率或pointsize 参数。我根据最终适合的地 block 数量增加了图形
我用 glm::perspective(80.0f, 4.0f/3.0f, 1.0f, 120.0f);并乘以 glm::mat4 view = glm::lookAt( glm::vec3(
我在 Shiny UI 中有一个情节。如果我更改任何输入参数并且通过 react 性图将会改变。但是让我们考虑以下情况:- Shiny UI 中的绘图可以说股票的日内价格变动。为此,您查询一些实时数据
我对 R 有点陌生。我在以下两个线程中跟踪并实现了结果: http://tolstoy.newcastle.edu.au/R/e17/help/12/03/7984.html http://lukem
我想在 WPF 控件中使用 GDI+ 绘图。 最佳答案 有多种方法可以做到这一点,最简单的方法是锁定您使用 GDI 操作的位图,获取像素缓冲区(从锁定中获取的 BitmapData 中的 Scan0
如何在以下取自其网站的绘图示例中隐藏颜色条? df % layout(title = '2014 Global GDPSource:CIA World Factbook',
我有两列数据,X 和 Y,每个条目在两个向量的小数点后都有 4 位数据。 当我使用 plot(x,y) 绘制简单图时,轴上显示的数据精确到小数点后两位。如何在两个轴上将其更改为小数点后 4 位精度?
我目前正在使用 Canvas 处理 JavaFX-Drawing-Application。在 GraphicsContext 的帮助下,我使用 beginPath() 和 lineTo() 方法绘制线
如果这个问题已经得到解答,但我无法找到我需要的东西,我提前道歉。我想从名为 data1.dat、data2.dat 的文件中绘制一些结果......我设法通过循环导入数据,但我无法使用循环绘制结果。仅
我的 pandas 数据框中有一个功能,可以(可能)具有多个级别。我可以使用以下方法获得独特的级别: reasons = df["Reason"].unique() 我可以通过执行以下操作在单个图表上
我在 Ubuntu 14 和 Windows 7(均为 64 位)中用 Python 绘制结果时遇到问题。作为一个简单的比较,我做了: from tvb.simulator.lab import *
以下代码相当简单 - 它用随机选择的像素填充设计表面 - 没什么特别的(暂时忽略第二种方法中的 XXXXXXX)。 private void PaintBackground() { Rando
我正在尝试制作一个绘制函数图形的 swing 应用程序(现在很简单,例如 x+2)但我在根据屏幕坐标制作我的点的数学坐标时遇到问题。我希望它在我的图表中简单地画一条从 P1(0,1) 到 P2(1,2
编辑 4:问题的新格式 背景:我有一个扩展 JFrame 的类 Window,在 JFrame 中我有一个 Canvas 。我向 Canvas 添加自定义对象。这个对象的唯一目的(为了争论)是在 Ca
我需要为即将到来的锦标赛标记阶梯,但我找不到任何方法来语义标记它。到目前为止我看到的唯一方法是 mark it up as a table ,我想不惜一切代价避免这种情况。 有什么想法吗? 最佳答案
我目前正在为一个小型 uC 项目编写 UI。在计算垂直线的位置时遇到一些问题。这个想法是将红线沿 x 轴移动到矩形的末端。 使用无限旋转编码器递增的值,范围为 0 到 800,增量为 1。矩形的左侧是
我正在尝试绘制光分布图。我想准确地执行此问题的第一步所要求的:Statistical analysis on Bell shaped (Gaussian) curve . 现在我有一组值。我希望数组元
我是一名优秀的程序员,十分优秀!