绘制2D中每两点之间的距离

如果我有一个三列表,其中第一列表示每个点的名称,第二列表示数值数据(平均数),最后一列表示(第二列+固定数字)。 下面的例子是怎样的数据: 在这里输入图像描述

我想绘制这张表,所以我有下图

在这里输入图像描述

如果可能的话,我可以使用Microsoft Excel或Python或R(Bokeh)来绘制它。

好吧,我只知道如何在ggplot2中做到这一点,我会在这里回答有关R。

这些方法只适用于dataframe是上面提供的格式。

我把你的专栏改名为方法名称,意思是平均值2.2

制备

将csv数据加载到R中

df <- read.csv('yourdata.csv', sep = ',') 

更改列名称(如果您不想更改下面的代码,请执行此操作,否则您需要通过每个参数来匹配列名称。

 names(df) <- c("Name.of.Method", "Mean", "Mean.2.2") 

方法1 – 使用geom_segment()

 ggplot() + geom_segment(data=df,aes(x = Mean, y = Name.of.Method, xend = Mean.2.2, yend = Name.of.Method)) 

正如你所看到的,geom_segment允许我们指定行的结束位置(因此, xendyend

但是,它看起来不像上面的图片。

线形似乎代表错误栏。 因此,ggplot为我们提供了一个错误栏function。

方法2 – 使用geom_errorbarh()

 ggplot(df, aes(y = Name.of.Method, x = Mean)) + geom_errorbarh(aes(xmin = Mean, xmax = Mean.2.2), linetype = 1, height = .2) 

通常我们不用这个方法来画一条线。 但是,其function符合您的要求。 你可以看到我们使用xminymin来指定行的头部和尾部。 高度input是调整两端线条末端的高度。

我会用这个hbar

 from bokeh.io import show, output_file from bokeh.plotting import figure output_file("intervals.html") names = ["SMB", "DB", "SB", "TB"] p = figure(y_range=names, plot_height=350) p.hbar(y=names, left=[4,3,2,1], right=[6.2, 5.2, 4.2, 3.2], height=0.3) show(p) 

在这里输入图像说明

然而如果你真的想要晶须而不是间隔条, 晶须也是一个select。

Interesting Posts