假设我有N个段,每个段都有一个开始值和一个结束值,例如:
[1,40],[40,80],[80,100],[90,110]
我想创建一个图表,我可以在其中显示所有这些图表,以便我可以看到第四个段与第三个段的值重叠。
我是图表新手,您能否建议我可以使用哪种图表来解决这类“问题”?此外,如果您能够建议支持该类型图表的库,那就太棒了。我可以使用以下任何一种:Java,Ruby,Python,Perl,.NET。将生成此类图表的应用程序将在Windows计算机上运行。
谢谢!
答案 0 :(得分:3)
恕我直言,我建议你使用一个简单的条形图,使用伟大的Google Bar Charts API。例如,对于您问题中提供的数据,我会像这样做一个网址
http://chart.apis.google.com/chart?cht=bvg&chs=320x280
&chco=4D89F9,C6D9FD&chbh=r,0.5,3.0
&chds=0,130&chxt=x,y&chxr=1,0,130,0&chxl=0:|a|b|c|d|
&chd=t:1,40,80,90|40,80,100,110
...谷歌会给我一张这样的图表。
如您所见,这是一个简单的GET请求。现在他们也支持POST requests。
事实上,我建议您在Google's Chart Gallery进行简单搜索。即使你不打算使用它,至少你会为你的项目提供一些非常好的例子。
(这种方法的明显缺点是需要互联网连接。但条形图建议仍然有用。)
答案 1 :(得分:3)
您可以使用Xinxua's answer在python中实现matplotlib之类的内容,如下所示:
import matplotlib.pyplot as plt
from pylab import zeros
data = [[1,40],[40,80],[80,100],[90,110]]
N = len(data)
plt.figure()
start_points = [x[0] for x in data]
lengths = [x[1]-x[0] for x in data]
z = zeros(N)
plt.errorbar(x=start_points, y=range(N), xerr=[z,lengths], fmt='o', xuplims=True)
plt.grid(True)
plt.axis(ymax=N-.5)
哪会给你 image of results using matplotlib http://www.freeimagehosting.net/uploads/ea438bb4de.png
答案 2 :(得分:3)
使用Google Charts API创建堆叠条形图,如下所示:
http://chart.apis.google.com/chart?
cht=bhs&chs=400x150&chco=eeffee,009933&chbh=r,0.5,2.0&chds=0,120&
chxt=x,y&chxr=0,0,120,20|1,1,5&chd=t:1,40,80,90|39,40,20,20
^^
将第一个系列设为白色,以便不显示。 (我使用浅绿色显示其工作原理;在上面的网址中将eeffee
更改为ffffff
以使其变为白色。)
请注意,您需要计算实际数据的宽度,例如:对于条目[80,100],您需要使用20作为宽度,如上面的URL中所示。
答案 3 :(得分:2)
我可以想到图表的类型,如下所示。也许是时间表。 (或甘特图)
| #######
| ########
| ########
| #########
------------------------------------
1 40 80 90 100 110
(抱歉,我有点茫然)。可能有人会提出图表api。 :d
答案 4 :(得分:1)
也许你想要更多的润色,以下将基本上做你需要的:
在您的示例中,我只使用每个数字对作为每个项目的开始和结束时间。 如果他们只是数字就没关系......看看monet例子......它使用一些事件开始/结束时间作为简单的数字(即:1845和1846)。
使用它来跟踪“事件”的生命周期或检查票证对于查看正在发生的事情非常有用。
答案 5 :(得分:0)
您可以使用支持起始值的柱形图,例如amCharts,或者您可以使用烛台图表,其中open / high设置为相同的第一个值,而close / low则设置为秒。
答案 6 :(得分:0)
如果您将使用.net,则可以尝试Infragistics控件。如果您使用的是WPF或Silverlight,并且想要免费的,可以尝试WPF Toolkit或Visifire。
答案 7 :(得分:-1)
http://pchart.sourceforge.net/ PChart for PHP是一个非常好的图表库,他们也有一个信息丰富的教程