2014-07-19 42 views
-5

这个图形类型叫什么?可以用morris.js创建SED图吗?

可以用morris.js重新创建吗?

如果是这样,请快速,简单的例子codepen/jsfiddle请(不需要复制数据,但展示垂直线和水平线)。

如果不是,广泛使用的JavaScript图形库支持它吗? graph

或(这是为了赏金),如何编辑https://github.com/morrisjs/morris.js/来支持上图?

我真的在寻求指针,但如果有人想贡献开源代码并获得一些代表权,我会非常感激。

但就像我说的那样,我应该在morris repo中查看一些关于文件和函数的指针,以便创建上图。

+0

我会更新标题,当我知道图表的名称,使其更容易对谷歌 – Starkers

+1

这是不是主题的StackOverflow –

+0

@ZachSaucier如何使用JavaScript库创建一个图形类型?真? – Starkers

回答

4

该图是从NASA/IPAC Extragalactic Database得到的SED or spectral energy distribution图或图。更多的信息是here

它在图上显示错误条,但不显示点标签。

并非所有SED情节是这样的一个,所以让我们描述的特征这其中有

  • 图表标题
  • 散点图
  • X轴标签
  • Y轴标签
  • X轴顶部刻度
  • X轴底部刻度
  • X轴对数刻度
  • Y轴的对数标度上的点
  • 误差条
  • 自定义字形的不同点上的散点图
  • 点沿x轴标签
  • Y轴的标签与String和Date

可能用morri.sjs重新创建,但是需要一些努力来添加所有缺少的功能。

这是我使用morris.js的现有功能(不添加任何功能)来绘制上面链接的一些数据的基本尝试。

HTML

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script> 
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
    <script src="http://cdn.oesmith.co.uk/morris-0.4.1.min.js"></script> 
<meta charset=utf-8 /> 
<title> Chart Example</title> 
</head> 
<body> 
    <p align="center">MRK 1014</p> 
    <div id="line-example"></div> 
</body> 
</html> 

的JavaScript

Morris.Line({ 
    element: 'line-example', 
    data: [ 
    { y: Math.log(1.45E+18), a: Math.log(6.41E-08) }, 
    { y: Math.log(1.45E+18), a: Math.log(1.03E-07) }, 
    { y: Math.log(1.45E+18), a: Math.log(1.31E-07) }, 
    { y: Math.log(1.45E+18), a: Math.log(6.28E-08) }, 
    { y: Math.log(1.45E+18), a: Math.log(8.55E-07) }, 
    { y: Math.log(1.45E+18), a: Math.log(8.55E-07) }, 
    { y: Math.log(1.45E+18), a: Math.log(5.59E-08) }, 
    { y: Math.log(1.45E+18), a: Math.log(6.55E-08) } 
    ], 
    xkey: 'y', 
    ykeys: ['a', ], 
    labels: ['Series A'], 
    linewidth: 0, 
    pointSize: 2, 
    ymin : Math.log(1E-08), 
    ymax : Math.log(1E3), 

}); 

正如你可以看到它看上去一点也不像你张贴的图片。

通过功能的用户列表功能去,

图表标题并不一定是一件morris.js功能,它可以是一个普通的HTML标题和段落元素。

morris.js不支持X轴标签和Y轴标签,您可以购买HTML段落元素和CSS3书写模式属性或转换函数,如Y标签所记录的here。带日期和字符串的Y轴标签可以用同样的方法完成。

您可以手动将转换放在最高比例上,也可以添加对最高比例和转换支持的支持。

对于对数刻度的支持,您需要修改morris.grid.coffeemorris.line.coffe

与自定义字形和错误栏支持以及沿x轴的分类标签相同。

根据工作量,morris.js是Pretty时间序列线图的项目,并且您的图既不是线图也不是时间序列线图。我认为你更适合使用d3.js或谷歌图表或其他JavaScript图形库。

d3.js scatterplot的例子包括herehere。还签出Iris SED Analysis Tool,其中吸取SEDs并有NED直接进口支持。

这些选项已经有图标题支持,scatterplot支持,x和y轴标签支持和日志规模支持和点的自定义字形,其他的东西可以比写morris.js的扩展更容易添加。