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

时间:2017-12-06 21:10:32

标签: excel matplotlib ggplot2 plotly bokeh

如果我有一个包含三列的表,其中第一列表示每个点的名称,第二列表示数字数据(平均值),最后一列表示(第二列+固定数字)。以下示例如何显示数据: enter image description here

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

enter image description here

如果有可能我可以使用Microsoft Excel或python或R(Bokeh)绘制它。

2 个答案:

答案 0 :(得分:1)

好吧,我只知道如何在ggplot2中这样做,我会在这里回答关于R.的问题。

这些方法仅在数据框采用您在上面提供的格式时才有效。

我将您的列重命名为Name.of.Method,Mean,Mean.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允许我们指定线的结束位置(因此, xend yend

但是,它看起来与上面的图像不相似。

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

方法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)

通常我们不会仅使用此方法绘制线条。但是,它的功能符合您的要求。您可以看到我们使用 xmin ymin 来指定行的头部和尾部。 高度输入是调整两端线条末端的条形高度。

答案 1 :(得分:1)

我会使用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)

enter image description here

但是如果你真的想要胡须而不是间隔条,那么Whisker也是一个选择。