精华内容
下载资源
问答
  • redis web 可视化工具

    2019-03-12 14:57:29
    redis web 可视化工具
  • 【Dash系列】Python的Web可视化框架Dash(1)---简介【Dash系列】Python的Web可视化框架Dash(2)---安装【Dash系列】Python的Web可视化框架Dash(3)---布局设置【Dash系列】Python的Web可视化框架Dash(4)---基本回调...

    【Dash系列】Python的Web可视化框架Dash(1)---简介

    【Dash系列】Python的Web可视化框架Dash(2)---安装

    【Dash系列】Python的Web可视化框架Dash(3)---布局设置

    【Dash系列】Python的Web可视化框架Dash(4)---基本回调

    【Dash系列】Python的Web可视化框架Dash(5)---状态和预更新

    【Dash系列】Python的Web可视化框架Dash(6)---交互和过滤

    【Dash系列】Python的Web可视化框架Dash(7)---回调共享

    【Dash系列】Python的Web可视化框架Dash(8)---核心组件

    本节通过6个独立的示例,介绍Dash应用程序的基本使用方法

    Dash应用程序由两部分组成。第一部分是布局(layout),描述应用程序的设计样式;第二部分描述了应用程序的交互性。

    Dash为应用程序的所有可视化组件,提供了Python类,在dash_core_components库和dash_html_components库中,进行组件的维护。当然,也可以使用 JavaScript 和 React.js 构建自己的组件。

    导入本章所有用到的包,下文不再说明

    import pandas as pd

    import plotly.graph_objs as go

    import dash

    import dash_core_components as dcc # 交互式组件

    import dash_html_components as html # 代码转html

    from dash.dependencies import Input, Output # 回调

    from jupyter_plotly_dash import JupyterDash # Jupyter中的Dash,如有疑问,见系列文章第2篇【安装】

    一、第一个Dash

    (一) 代码

    app = JupyterDash('Hello Dash', )

    app.layout = html.Div(

    children = [

    html.H1('你好,Dash'),

    html.Div('''Dash: Python网络应用框架'''),

    dcc.Graph(

    id='example-graph',

    figure = dict(

    data = [{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': '北京'},

    {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': '上海'}],

    layout = dict(title = 'Dash数据可视化')

    )

    )

    ]

    )

    app

    (二) 效果图

    7d327ab81ad249028c70e92f14701da4.jpg

    (三) 说明

    布局 layout 由 html.Div 和 dcc.Graph 这样的组件树组成;

    Dash是 声明式 的,通过关键字参数描述组件。即Dash主要通过属性描述应用,如 style、className、id等;

    dash_html_components 库为每个HTML标签都提供了对应的组件。本例中:html.H1(children='Hello Dash')可以生成你好,Dash这样的HTML语句。并非所有组件都使用纯HTML语言;

    dash_core_components 这种交互式高阶组件库,是由JavaScript、HTML和CSS编写,并由React.js库生成,用于设置互动性图表组件,如控件、图形等,其语法类似Plotly;

    按照惯例,children 始终是第一个属性,可以省略,即 html.H1(children='Hello Dash') 和 html.H1('Hello Dash')相同,本例中,声明了3次,实际上都可以忽略。另外,它还可以包含字符串、数字、单个组件或组件列表。

    二、自定义HTML文本样式

    (一) 代码

    app = JupyterDash('Hello Dash Style')

    colors = dict(background = '#111111', text = '#7FDBFF')

    app.layout = html.Div(

    style = dict(backgroundColor = colors['background']),

    children = [

    html.H1(

    children='你好,Dash',

    style = dict(textAlign = 'center', color = colors['text'])),

    html.Div(

    children='Dash:Python网络应用框架',

    style = dict(textAlign = 'center', color = colors['text'])),

    dcc.Graph(

    id='example-graph-2',

    figure = dict(

    data = [{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': '北京'},

    {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': '天津'}],

    layout = dict(

    plot_bgcolor = colors['background'],

    paper_bgcolor = colors['background'],

    font = dict(color = colors['text'])

    )

    )

    )

    ]

    )

    app

    (二) 效果图

    5144c7f829b242ea8357f87b6992705a.jpg

    (三) 说明

    dash_html_components 库除了为HTML参数提供了关键字外,还为每个HTML标签提供了组件类;

    示例中,使用 style 属性修改了 html.Div 和 html.H1components 行内样式;

    dash_html_components 的 HTML 属性,与 HTML 属性之间存以下几点差异:

    HTML中的style属性是以分号分隔的字符串;Dash用的是字典;

    Dash的style字典键是 camelCased(驼峰式) 命名法,HTML 中的 text-align,在style字典中为 textAlign;

    HTML 的 class 属性,对应Dash中的 className;

    HTML 的子项是通过 children关键字参数指定的,按照惯例,这始终是第一个参数,经常被省略;

    除了上述外,其他所有HTML属性与标签,在Python中都有效。

    三、可重复使用的组件

    (一) 代码

    # 数据源:美国农业出口(2011年)

    df = pd.read_csv(

    'https://gist.githubusercontent.com/chriddyp/'

    'c78bf172206ce24f77d6363a2d754b59/raw/'

    'c353e8ef842413cae56ae3920b8fd78468aa4cb2/'

    'usa-agricultural-exports-2011.csv')

    # 定义表格组件

    def create_table(df, max_rows=12):

    """基于dataframe,设置表格格式"""

    table = html.Table(

    # Header

    [

    html.Tr(

    [

    html.Th(col) for col in df.columns

    ]

    )

    ] +

    # Body

    [

    html.Tr(

    [

    html.Td(

    df.iloc[i][col]

    ) for col in df.columns

    ]

    ) for i in range(min(len(df), max_rows))

    ]

    )

    return table

    # 设置Dash应用程序

    app = JupyterDash('Defining Components')

    app.layout = html.Div(

    children = [

    html.H4(children = '美国农业出口数据表(2011年)'),

    create_table(df)

    ]

    )

    app

    (二) 效果图

    42424bf55b7e44a0999650de733ebbb9.jpg

    (三) 说明

    在Python中定义方法,Dash通过调用,可以创建复杂的可重用组件,如表格等,无需切换上下文或语言;

    本示例实现的功能,是从Pandas的数据帧生成“表格”。

    四、可视化散点图

    (一) 代码

    # 数据源

    df = pd.read_csv(

    'https://gist.githubusercontent.com/chriddyp/' +

    '5d1ea79569ed194d432e56108a04d188/raw/' +

    'a9f9e8076b837d541398e999dcbac2b2826a81f8/'+

    'gdp-life-exp-2007.csv')

    app = JupyterDash('Scatter Plot')

    app.layout = html.Div([

    dcc.Graph(

    id = 'life-exp-vs-gdp',

    figure = dict(

    data = [

    go.Scatter(

    x = df[df['continent'] == i]['gdp per capita'],

    y = df[df['continent'] == i]['life expectancy'],

    text = df[df['continent'] == i]['country'],

    name = i,

    mode = 'markers',

    opacity = 0.8,

    marker = dict(size = 15, line = dict(width = 0.5, color = 'white'))

    ) for i in df.continent.unique()],

    layout = go.Layout(

    xaxis = dict(type = 'log', title = 'GDP Per Capita'),

    yaxis = dict(title = 'Life Expectancy'),

    margin = {'l': 40, 'b': 40, 't': 10, 'r': 10},

    legend = dict(x = 0, y = 1),

    hovermode = 'closest'

    )

    )

    )

    ])

    app

    (二) 效果图

    be21416b40ce4956b8d7c24a120bea28.jpg

    (三) 说明

    dash_core_components 库包含一个名为的组件Graph,其使用开源JavaScript图形库plotly.js ,呈现交互式数据可视化;

    Plotly.js 支持超过35种图表类型,并以矢量质量SVG和高性能WebGL的方式呈现图表;

    dash_core_components.Graph 组件的参数 figure ,与开放源码的 Python 图形库 Plotly 中的参数 figure使用方法,都是一样的;

    这些图表具有互动性和响应性:

    将鼠标悬停在点上以查看其值;

    单击图例项以切换轨迹;

    单击并拖动以缩放;

    按住shift后单击并拖动,可以平移图表;

    五、Markdown文本

    (一) 代码

    app = JupyterDash('Markdown')

    text_notes = '''

    ### Dash和Markdown

    Dash应用程序可以用Markdown编写。Dash使用 Markdown 的CommonMark规范。

    如果这是你对Markdown的第一次介绍,请查看他们的[60 Second Markdown Tutorial](http://commonmark.org/help/)!

    '''

    app.layout = html.Div([

    dcc.Markdown(children=text_notes)

    ])

    app

    (二) 效果图

    97f81d8306734609af4a1e513c2978bb.jpg

    (三) 说明

    虽然Dash通过 dash_html_components 库可以实现文本编写,但在HTML中编写文本,比较繁琐,需要写入大量的格式化文本,推荐使用库中的Markdown组件;

    Dash使用 Markdown 的CommonMark规范;

    六、核心组件

    (一) 代码

    app = JupyterDash('Core Components')

    app.layout = html.Div([

    html.Label('下拉菜单'),

    dcc.Dropdown(

    options = [{'label': '北京', 'value': '北京'},

    {'label': '天津', 'value': '天津'},

    {'label': '上海', 'value': '上海'}],

    value = '北京'),

    html.Label('多选下拉菜单'),

    dcc.Dropdown(

    options = [{'label': '北京', 'value': '北京'},

    {'label': '天津', 'value': '天津'},

    {'label': '上海', 'value': '上海'}],

    value = ['北京', '上海'],

    multi = True),

    html.Label('单选钮'),

    dcc.RadioItems(

    options = [{'label': '北京', 'value': '北京'},

    {'label': '天津', 'value': '天津'},

    {'label': '上海', 'value': '上海'}],

    value = '北京'),

    html.Label('多选框'),

    dcc.Checklist(

    options = [{'label': '北京', 'value': '北京'},

    {'label': '天津', 'value': '天津'},

    {'label': '上海', 'value': '上海'}],

    value=['北京', '上海']),

    html.Label('Text Input'),

    dcc.Input(value = '天津', type = 'text'),

    html.Label('文本输入'),

    dcc.Slider(

    min = 0, max = 9, value = 5,

    marks = {i: '标签 {}'.format(i) if i == 1 else str(i) for i in range(1, 6)})

    ],style={'columnCount': 2})

    app

    (二) 效果图

    691198039cae459a888778f79ead9780.jpg

    (三) 说明

    本示例中,展示了下拉列表单选、下拉列表多选、单选按钮、多选按钮、文本输入框、滑动条;

    dash_core_components 包含一系列高级别的组件,如下拉列表、图形、Markdown文本等;

    与所有Dash组件一样,这些组件都是声明式的,组件的关键字参数也一样,每个选项都可以进行配置;

    在Dash核心组件库中,可以查看所有可用的组件。

    七、小结

    Dash组件是声明式的,在实例化关键字参数时,可设置配置项。通过调用help,可以查看Dash组件及其可用参数的更多信息;

    help(dcc.Dropdown)

    总结

    布局(layout)用来设置Dash应用程序的样式,是结构化的树状组件;

    dash_html_components 库提供了所有的HTML标签和关键字参数,用来设置HTML属性,如style、className、id等;

    dash_core_components 库生成了更高级别的组件,如控件和图形;

    具体参考官方文档:dash_core_components、dash_html_components

    展开全文
  • Web可视化搭建 1. Web可视化搭建与传统的Web开发相比具有哪些优势 Web 数据可视化是使用可视化大屏的方式来分析并展示庞杂数据的产品。Web旨让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面...

    Web可视化搭建

    1. Web可视化搭建与传统的Web开发相比具有哪些优势

    Web 数据可视化是使用可视化大屏的方式来分析并展示庞杂数据的产品。Web旨让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。

    相比于传统图表与数据仪表盘,如今的数据可视化致力于用更生动、友好的形式,即时呈现隐藏在瞬息万变且庞杂数据背后的业务洞察。无论在零售、物流、电力、水利、环保、还是交通领域,通过交互式实时数据可视化大屏来帮助业务人员发现并诊断业务问题,越来越成为大数据解决方案中不可或缺的一环。

    2. Web可视化搭建如何调用编排好的服务流?

    创建类库工程,根据流程需要实现的功能添加功能代码并编译生成共享动态链接库文件;在功能仓库的Web节点上注册共享动态链接库文件、及其功能模块和功能;在可视化界面上搭建工作流;将工作流部署到服务管理器上;Web端异步调用工作流并返回结果至Web端;所述系统包括动态链接库文件生成层、功能注册层、功能测试层、工作流搭建层、工作流发布层及Web服务扩展层

    3. Web可视化搭建的核心能力有哪些?

    (1)开发语言 (2)浏览器兼容性 (3)业内标准

    APP可视化搭建流程

    在这里插入图片描述

    1.App开发与Web开发有哪些区别?

    App开发主要应用在可以运行在安卓或者iOS手持终端系统上的应用程序,Web开发主要是面对基于PC端的浏览器访问。

    2.手机App的发展历史可以对App后续的技术发展带来哪些启示?

    后续的App的种类会变得越来越多,使用起来越来越方便,实用性越来越高,App应用不再局限于几个方面

    3.手机操作系统和手机App之间有哪些联系?

    不同的手机操作系统会对应不同的手机App,但同时也会存在相同的手机App。 不同操作系统中的App可能由不同的开发语言开发,在iOS系统中主要以Swift开发,在Android系统中主要以Java语言开发。

    4.IoT Studio App可视化搭建与传统App开发相比有哪些优势

    IoT Studio App采用的可视化搭建App,进行组件配置调试发布。可以将表达信息直接展示于眼前,可视化搭建所见及所得,并且拥有丰富的组件和配置项,集成用户鉴权服务,一次搭建之后可适用于iOS、Android两个平台。

    展开全文
  • redis web 可视化工具
  • Windows性能Web可视化监控工具
  • 作业10:Web设计/ Web可视化仪表板 这是我的第10个挑战,也是第一个“ Web”(HTML,CSS)挑战。 对于此任务/挑战,我使用在过去的任务(Python API:WeatherPy)中创建的可视化文件创建了可视化仪表板网站。 使用...
  • EverCraft一直在关注Web可视化技术的发展,本文对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report in Web-based ...

    EverCraft一直在关注Web可视化技术的发展,本文对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report in Web-based Visualization. COMPUTER GRAPHICS FORUM, 2016. 35(3): p. 553-575. ”。感兴趣的同学可以关注我们,回复“可视化”直接阅读原文献。

    一、概述

    远程可视化技术研究在海量医学数据、社交媒体数据或商业数据的可视化应用方面发挥着重要作用。这一需求源自用户终端计算能力的相对不足,比如手机处理能力不够,或者需要可视化的数据量太大。同时,由于传输带宽、延迟时间或者本地存储的限制,即使终端计算能力足够,这些海量的数据也难以实现高效传输。况且,在某些特殊场景下,一些敏感数据或者保密原始数据也并不适合直接向其他人开放。鉴于带宽、网络延迟等问题成为远程可视化的主要瓶颈,过去有大量研究和技术集中于解决这些问题。尽管过去的研究成绩斐然,但数据量的不断增长和硬件设备的持续发展,使得远程可视化依然一直是研究的热点。由于天然的跨平台属性、以及成为未来协作平台的潜力,基于Web的可视化技术在该领域表现得尤为突出。基于Web的方式使得一套可视化工具代码可以跨平台执行,这不仅让团队间的协作和分享更加便捷,并且降低了程序的维护复杂度,使得可视化领域的研究者和其他应用行业领域的研究者可以更专注于研究各自领域的核心问题。更进一步,基于Web的方式使得各应用领域的研究者可以随时获得最新的数据(只需要刷新页面即可)。同时,这种可视化研究者和行业应用研究者的协同工作方式,更有助于促进可视化研究成果的落地应用。基于Web的可视化方案的另一个明显优势则是用户的便利性。用户(比如各行业应用的研究者)只需要通过网页浏览器,而不需要安装其他任何软件。因浏览器基本上在所有的计算终端均可直接使用,用户可随时随地开展工作(只要能上网,同时其具有数据的访问权限)。因为大多的可视化解决方案均是基于GPU的,着色器代码(本质是文本类文件)可与数据同时存在服务器供多客户端使用。这种可视化方案在某些数据不便分享的场景尤具吸引力。比如用户完全可以把数据存在本地终端,通过从服务器获取着色器代码,以实现数据的可视化,而不需要将数据上传到服务器(尤其是当多用户同时在上传数据时,这将带来极大的传输成本)。显然,对于比较大的数据量而言,传输可执行的代码远比传输数据要来得简单。早期的Web可视化技术主要利用VRML和浏览器的Java插件,或者服务端的渲染实现,以及其他集成Java、JavaScript和Flash的方式。因带宽和网络延迟的限制,这些方式的体验都比较一般。由于浏览器技术的限制,服务端渲染的方式在当时更受欢迎。但是,近些年Web技术发展迅速,目前Web可视化技术趋势已是通过WebGL和HTML5以充分利用用户终端的GPU加速渲染,而不需要浏览器加装任何的插件。基于GPU的可视化技术将计算渲染的负担由GPU承担,以改善渲染和交互的体验(否则使用javaSript在CPU上是不可行的)。这种通过用户终端进行渲染计算的方式优点在于其避免了网络延迟带来的影响,因为其不再需要反复与服务端交换交互操作参数和渲染生成的图片。当然,虽然有了上述的进步,将部分渲染计算分流到服务端渲染或预处理依然有助于浏览器端对于复杂场景的渲染。本文主要对Web可视化技术进行综述,包括讨论最新的渲染技术、底层技术、以及优化算法策略等。这些通用技术共同构建了Web可视化应用的基础,因此,本文不仅关注高速、GPU加速的用户终端渲染技术,同样关注服务端渲染技术(比如网格化计算),以及如流媒体、数据压缩等降低带宽需求的技术。同时,我们讨论了各应用领域的一些Web可视化的应用程序,分析这些应用和前文所述基础技术的相关性,并进行了分类。最后,文章讨论了一些特殊的应用场景,并给出了一些落地的应用方案。

    二、技术方面

    本节内容主要讨论可视化在web服务、网格化、云服务方面的技术基础,同时也涉及浏览器本地渲染、数据编码、数据传输等方面的技术。远程可视化及web可视化通常采用CS(client-server)架构。网格化计算和云计算的可视化方法将大量数据的处理问题置于服务端(比如大型模型的渲染任务、复杂的预处理任务等),同时支持多客户端访问。在某些特殊场景下,比如来自仿真计算或其他处理后的结果数据已经存储在网格端或云端,这些源数据基本不大可能迁移,那么只能采取基于网格或云服务的可视化方案。基于web的可视化方法充分利用了跨平台的浏览器以及对应的web部署和协同技术。在基于网格和基于云的可视化方案里,web可视化同样扮演了重要的作用,如将浏览器作为客户端访问入口。

    2.1 作为Web服务的可视化

    W3C组织将web服务定义为:用来支持机器与机器之间网络信息交互的软件系统。web服务的主要目标即为尽可能使不同软件应用和工具在共同完成某项特定任务时,其相互之间可以进行流畅的信息交互。因为web服务定义了统一的接口,各不同类型编程代码的应用程序即使在不同的运行环境执行,其相互之间依然可以实现顺畅的信息交互。web服务技术在异构分布式计算系统里显得尤为重要。根据渲染管线(pipeline)如何拆分,基于web服务概念的可视化方法主要分为三类:1.将所有的可视化管线作为一个黑盒,一个应用程序视为单个服务,用户通过交互界面配置需要可视化的数据并获得可视化结果。这种方式的优势是对于用户来说十分简单。但是,另一方面则也限制了用户对于更多可视化类型的选择。2.将管线的每一个阶段分为独立的web服务。这种方式各部分的管线向用户开放,用户可通过集成不同类型的web服务来定制满足自己需求的多样化。各种不同类型的Web服务可由多方开发服务商提供、由不同的执行代码组成、运行在不同的环境。虽然这种方式为用户提供了最大的自由度,但是由于各服务之前的信息交互和数据交换成本,可能带来效率的降低。3.将管线的每几个阶段打包为独立web服务。这种方式为前两种方式的结合,既为用户提供一定的自由度,又保证信息交换的效率。若将数据可视化作为数据分析流程的一部分,相对于把可视化应用程序拆分为不同web服务,把其作为单个web服务将更有助于抽象。将可视化应用的管线的不同阶段分为不同的web服务,则更适用于程序开发者。开发者们更愿意集成不同性能的可视化技术,以充分利用不同硬件特性,为用户提供最有效的可视化服务。另外一个重要的技术点则是如何处理可视化管线不同服务之间的数据交换。Web服务之间可以直接进行数据交换,也可通过数据中心进行数据交换。有研究表明前者的性能通常优于后者。在实现方面,通用有两种主要的技术路径:基于SOAP的web服务和基于RESTful的web服务。由于RESTful更为简单,并更易与其他web标准集成,目前的主流更倾向于RESTful。但是,虽然基于RESTful的web服务在商业领域和云服务领域广泛应用,但在可视化服务方面却没有得到足够的关注。我们将在2.2和2.3部分讨论网格化和云计算环境下的可视化web服务。Web服务使得不同工具可以基于标准的方式进行信息交互,不管其是用哪种代码编写的、在什么环境下运行或者在什么设备上。这将使得数据分析可以更加的自动化(在数据分析流程里可视化作为其中一部分)。各组元可以将其实现细节在自己内部封装,相互之间只要遵循一致的通信协议。将接口和实现分开,使得各组元可以更专注于针对某些特殊任务或硬件特性进行优化。目前关于作为web服务的可视化的工作主要还是关注如何将web服务理念应用于可视化程序本身,关注可视化程序内部各子服务的信息交互,而没有过多关注在数据分析流程中可视化服务和其他数据分析工具的交互(如仿真和分析工具/服务)。不断增长的数据量和复杂的数据分析需求,使得单独的可视化工具并不足以满足某些特定的任务,因此需要考虑可视化工具与数据分析其他工具的融合。通过为可视化服务提供不依赖于编程语言和运行平台的统一接口,各可视化服务之间的连接变得简单,并将进一步提高数据分析的自动化程度。通过复杂的可视化引擎,用户只需要输入可视化数据和提供部分可视化参数,就可以自动输出可视化结果。这将更有助于各行业领域的研究人员专注于研究各自领域的核心工作,而不用花费更多的时间在软件工具的集成上面。

    2.2 基于网格计算的可视化

    网格化计算是一种分布式计算模型,通过汇聚各节点的计算和存储资源池来提供高性能的计算架构。各网格的计算资源与集群计算类似分布,区别在于集群的每个计算节点属于同一个组织内,而网格计算的计算节点是跨组织的。因此,相对于集群计算通常是同构资源,网格化计算的资源通常是异构的。基于网格化计算的可视化源自对于复杂高性能的仿真,需要通过各网格资源来满足计算和存储仿真结果。通常科学仿真和其他科学设备产生的数据量十分巨大,基本不大可能仅使用本地计算资源来实现该类数据的可视化,因此需要网格化计算架构。各网格的计算和存储资源在地理上是分散分布的,所以基于网格计算可视化的算法面临着如何在有限带宽和延迟的条件下高效利用这种分布式架构的挑战。大多数的网格计算可视化工作充分利用了web服务。考虑到网格化计算资源的异构属性,这很好理解。

    2.3 基于云计算的可视化

    基于云计算的可视化可视为基于网格计算可视化的进一步发展。云计算为远程可视化带来了更高的弹性和量化平台。通常云服务的接入还是需要具有计算和存储限制的网络终端(比如手机、平板、笔记本等),所以基于云计算的可视化面临的挑战,依然来自于如何在尽量降低对网络终端要求的前提下,提高网络终端和云端之间数据传输的效率。为了应对这一挑战,通常利用云端进行那些要求复杂预处理的任务,仅从终端提取和传输可视化必须的数据。目前的可视化技术依赖于GPU的计算能力以加速渲染,所以要求这些应用程序能够从云端虚拟机获取GPU资源。虽然大都数的虚拟机管理程序可以有效实现主要计算资源类型的虚拟化,比如CPU、硬盘、I/O设备等,但GPU能力的虚拟化支持并不太够。当前从虚拟机访问GPU的主要方法是通过GPU直通和虚拟GPU(当前由NVIDIA GRID或AMD Multiuser GPU提供)基于GPU的云端渲染主要应用在游戏和远程桌面解决方案。游戏在远端渲染并以流媒体的形式传输到客户端。为了降低延迟,GPU通常具有内置视频压缩编码,以降低传输视频流时给CPU带来的负担。这些游戏服务的终端多为移动设备、游戏终端、或者电视。对于云端游戏来说,延迟依然是最大的挑战。因为交互性的云端可视化和游戏都对延迟敏感,所以当使用云端渲染方案时,基于云端的可视化面临一样的挑战。将云端计算和客户端渲染技术综合使用,不失为解决对于延迟敏感场景下问题的有效云端可视化方案(我们将在之后讨论)。云端虚拟机服务并不是就没有上限。因为每一个虚拟机都需要完整的操作系统,存储要求和日常通讯负荷很高。通过I/O接口的日常的通讯来自于运行在虚拟机和实体硬件资源之间的服务、或者不同虚拟机之间的服务。目前轻量化的虚拟技术(如Docker容器)在计算资源共享的性能和效率方面具有更大的潜力。同时结合云端和客户端计算资源的云端可视化方案,将优于单独的云端渲染方案。对于延迟敏感的可视化应用来说,最理想的是在客户端执行渲染,并将任务的预处理放在云端。GPU移动技术的进步使这种结合成为可能。客户端避免了因网络带来的延迟,适用于交互性的可视化程序。云计算已经在仿真领域应用,这些仿真通常产生巨量的数据,无法通过单个工作站实现可视化。而将仿真数据放在云端,则通过使用云端可视化服务,则避免了这些巨量数据的迁移。对于云端GPU的使用,不仅限于实现云端的GPU加速渲染。服务端的GPU加速计算(如使用CUDA及OpenCL),能在节省能源的情况下提供更高的性能。因此,尤其对于移动设备来说,将高昂的计算放在云端,将获益不菲。

    2.4 浏览器的本地渲染

    在客户端渲染(如使用浏览器的本地渲染)的主要优势在于可视化过程中的交互。本地化渲染避免了服务端渲染方式所受的网络延迟影响。最近web技术的发展(尤其是JavaScript的性能提高以及WebGL的广泛使用)使得浏览器已经可以实现高性能的可视化渲染。本部分我们将主要讨论HTML5和WebGL相关的渲染技术,它们已经是浏览器无插件渲染的实际上的标准。HTML5新引入的元素可通过JavaScript动态地绘制图形,支持2D上下文(context)以及3D上下文。2D上下文提供基于CPU的2D基本绘图渲染(HTML5支持的另外一个2D矢量图元素是)。3D上下文提供基于GPU的支持webgl的3D渲染。WebGL是OpenGL的一个特殊版本:OpenGL ES 2.0,专门用以支持浏览器端的3D渲染。因为上述上下文方式提供的API都是底层接口,所以诞生了很多库和框架,以简化他们的开发使用:

    • 如X3DOM和XML3D等框架都旨在将3D图形与HTML5的DOM(document object model,文档对象模型)集成。X3DOM通过X3D和HTML5集成以实现浏览器的3D图形支持。这一类的框架通过场景声明式的API完成3D渲染的WebGL顶层实现。这种集成方式与面向2D绘图的SVG类似,一个3D场景使用XML语言来描述,嵌入在元素标签内。
    • 另一类通过浏览器访问GPU实现3D渲染的顶层封装库包括如Three.js和Babylon.js等。相比于X3DOM和XML3D类型,Three.js和Babylon.js这类库不再通过XML文档声明方式来实现3D场景,而是以JavaScript库的方式提供可编程的API。
    • 虽然Three.js和Babylon已经实现了较高的顶层封装,应用十分广泛,但在更垂直的应用领域,为了更进一步简化编程过程,也出现了很多更顶层的封装库,极度降低了web 3D的可视化编程门槛。这一类的典型代表如EverAPI,最少仅需要四、五条代码即可通过EverAPI实现web 3D的展示,并默认集成了针对机械领域对3D模型常用的操作功能,如结构树、剖切图、标注等。

    2.4.1 基于GPU的3D渲染

    利用GPU的浏览器渲染技术多使用基于多边形的方法或射线跟踪法。基于多边形的技术通常使用基于WebGL构建的库来生成或从客户端导入网格,并将其上传到GPU渲染。在其他情况下,网格是从服务器传输到客户端。但是,基于多边形的技术具有一些限制。为了获得顺滑的表面,需要精细的曲面细分(tessellation),从而帧速率与三角面片的数量成比例的降低。此外,大量的三角面片不仅会消耗大量内存,而且每次几何形状发生改变都将需要相当大的CPU-GPU带宽。同时,在浏览器环境中,如果CPU生成几何图形数据的过程被迟滞了,则又将进一步降低渲染性能。将几何图形的生成过程迁移到功能强大的服务器也不总能解决上述问题。网络延迟以及和网络及CPU-GPU互联的带宽可能仍会对渲染性能产生负面影响。为了缓解这些问题,一种更好的方法则是使用隐式、参数化几何体,并通过基于GPU的射线跟踪法渲染。这种方法确保了CPU到GPU之间更少的数据传输,并降低了在JavaScript中的计算代价。基于GPU的射线跟踪法利用参数定义对象的隐式表面,并且在片段着色器中计算射线与对象的交点以生成物体表面。为了开始渲染并生成这些片段,通常会渲染替代几何体。例如,对象的全屏四边形或者紧密包围盒都可作为对象的一种替代几何体。这些技术的优点是即使对于大量数据也可以提供高渲染性能和高质量图像。根据所使用的实现算法,射线与物体交点的高效计算可能需要采用加速结构。基于GPU的体积射线行进算法是目前直接提供体绘制的最先进的算法。此技术使用3D纹理(假设使用WebGL 2.0)或2D纹理集或图集进行数据存储。通常使用替代几何体(如体积数据的包围盒)以进行初始化渲染。与PC端的OpenGL类似,有两种途径可使用WebGL来实现此技术:多通道渲染和单通道渲染。

    • 多通道渲染方法中,将替代几何体(通常是体积包围盒)渲染为纹理,以便在体积数据中获取射线的入射点和出射点。这些射线然后在体积遍历过程中使用,以获得这些采样射线的起点和方向。在片段着色器中,沿射线对体积进行采样、分类、选择性的着色、并迭代合成得到像素的最终颜色。
    • 在单通道渲染方法中,对体积包围盒的正面和背面都进行栅格化。在片段着色器中,射线遍历沿着视线步进穿过体积并合成样本颜色,最终获得像素颜色。在WebGL 1.0中可视化大量体数据的主要限制在于纹理存储和对着色器动态循环的支持。

    使用WebGL进行体积可视化的另一种方法是在服务器端提取几何图形并在客户端上执行渲染。如在服务端使用CUDA对原始的MRI数据进行预处理,然后在客户端使用Three.js进行渲染,服务端和客户端通过XML或者JSON格式传输几何文件。或在服务端利用VTK库从体数据提取切片图片,并将JPEG或PNG格式的图片发至客户端通过GPU渲染。网格渲染:许多网格渲染技术使用渐进式网格来改善交互。这是通过对网格的不同细节程度(LOD,levels of detail)进行渐进解码和渲染来实现的。渐进式网格的主要思想是用低分辨率(基础网格)来表示网格数据,并结合各种算法操作(如定点分割)从基本网格重建网格,以获得所需细节程度的结果。这种表示法可实现高效的加载、解码和渲染。这是因为为了获得所需细节程度的模型表示,仅需要在上一细节程度级别的模型基础上进行网格重建操作,这减少了需要传输到客户端的数据,降低了带宽的使用。

    2.4.2 SVG/Canvas的2D绘制

    如前文所述,元素除了通过WebGL提供3D绘制外,还有2D图形绘制的API。它提供了使用JavaScript绘制路径及多个2D形状和文本的内置函数。D3.js是一个用于信息可视化的JavsScript库,它建立在浏览器的DOM以及CSS和SVG之上。SVG为使用标记语言的进行2D图形渲染的另一种方法。D3.js允许用户将要可视化的数据绑定到DOM元素,并根据基础数据的属性值操纵器元素属性。它显示元素的文档模型而不是提供自定义的数据模型(这避免了在模型之间转换时产生额外的开销)。直接操作DOM可能会导致性能下降,尤其是对于大型数据集,因为每当DOM发生变化时,都可能要求浏览器进行布局、绘制和合成。但是,通过使用DOM模型,可以确保与其他Web标准的无缝互操作性。

    2.5 数据编码与传输技术

    高效的数据编码和传输对于浏览器中的交互可视化非常重要。如果没有有效的数据传输格式,带宽和延迟问题可能导致客户端等待数据加载时间过长。对于动态数据,这可能会妨碍实时数据更新,影响时间序列的动画效果流畅性。尽管数据压缩减少了要传输的数据量并因此节省了带宽,但它不能独自保证交互式数据的更新,因为压缩和解压时间的开销可能超过传输节省的时间。理想情况下,从数据编码、传输、解码到渲染这个完整的数据传输管线,都应该综合优化,以获得平衡的端到端性能体验。需要技术只关注优化其中的一个或者几个环节。瓶颈通常在解码和渲染阶段,因为这两个阶段在客户端执行。针对网络提出的各种压缩和解压缩方法集中于允许有效的解码和渲染,而不是仅优化压缩率。流式和渐进式网格格式是一种隐藏的方法,可以隐藏延迟并改善交互性,从而改善用户体验。网格数据通常以不同的细节级别表示,并且每个级别被编码为可以逐步解压缩并在客户端上呈现的单独的数据块。大多数方法专注于基于CPU的高效解码,另一个选择是使用GPU友好格式,可以将其直接上传到GPU。在这种情况下,解码完全在GPU上执行。这不仅可以通过减少客户端上的解码时间来提高性能,而且仅需要更少的CPU-GPU带宽。

    三、基于Web可视化的应用

    以下列举一些基于Web可视化的行业应用。

    粒子数据可视化

    在浏览器中实现分子可视化在互联网的早期就很流行。分子数据可视化,例如小球模型,是基于粒子的可视化的一个示例,其中每个原子都描述为一个球体。每个球体的大小代表相应元素的范德瓦尔斯半径。使用基于多边形的渲染时,必须将这些球体细分为三角形,然后对其进行栅格化。下图为该领域应用的一个案例:

    ada83241110a09838f9e563385781701.png
    proteinformatics.charite.de—http://proteinformatics.charite.de/ngl/html/ngl.html

    分子模拟中动态分子数据(轨迹)的可视化也是该领域科学家的一项重要功能,但是这一实现直到最近几年仅限于桌面解决方案。如2.4.1节所述,两种主要方法可用于渲染球体:基于GPU的射线投射和网格渲染。基于GPU的光线投射技术在渲染性能和图像质量方面提供了更好的结果。

    体数据可视化

    正如2.4所述,有研究者使用WebGL提出一种基于GPU的体积射线行进算法的早期实现。他们使用基于GPU的多线程体数据射线投射方法来可视化来自医学成像和天气雷达扫描的体数据。也有人提出用于医学图像分割和渲染的CS架构应用程序。这一分割算法使用一种基于图像的方法,从服务器上的原始数据中提取切片,并将它们作为JPEG或PNG图像发送到客户端,在其中可以对其进行操作以出发服务器上的图像分割。完成图像分割后的等值面发送到客户端渲染实现可视化。其服务器使用VTK库,客户端使用Three.js库(这一应用实例如下图)。这种方法最直接的应用为通过MR断层图像分割,获取患者的膝关节三维可视化(话说小编BOSS以前实验室就有做过这个)。

    4ffe8c25be67d242aec8f975748a2b05.png

    地理空间数据可视化

    网络上的地理空间数据(包括4D时空数据)的可视化涵盖了各种数据,例如海洋数据,栅格图像,天气预报数据和城市模型。在所有基于Web的现代地理空间可视化中,常见的是将WebGL用于硬件加速渲染和其他现代HTML5技术。一些方法直接使用WebGL,而其他方法则使用声明性框架,例如X3DOM。X3DOM实现了X3D标准中的一个组件,用于可视化地理空间数据。

    ea4267b1072105e3d0e2245556924b84.png

    72a52aa200095b8ee1b5cb79c209f472.png

    信息可视化

    比如有研究者介绍了用于大型二维点数据的交互式可视化的散点图技术,该技术基于WebGL实现。该方法解决了常规散点图方式可视化大量点数据集时遇到的数据量过载问题。原始实现中在CPU上执行的计算已使用“渲染到纹理”技术移至GPU,以获得更好的性能。

    3D模型可视化

    3D模型可视化历史则由来已久,早在上个世纪60年代就开始存在3D的CAD软件(比如UG、Solidworks等),只不过大多数时间都是基于客户端安装软件的形式而不是Web可视化。随着SAAS服务的发展,各传统的3D CAD公司都在做云端的迁移,逐渐实现基于Web的3D模型可视化,甚至可以直接基于Web 3D做产品的设计(如前段时间以4.7亿美金被PTC收购的onshape),以及一些主要用于做3D协作项目管理,同时提供Web可视化功能的解决方案(比如EverCraft.co)

    ec0252078785b1d19f25636403fba5cd.png

    通用工具包

    有很多基于Web的通用可视化工具包,涵盖了一系列应用领域,包括信息可视化,蛋白质可视化,医学可视化和地理空间可视化。本节中讨论的大多数工具箱都使用了WebGL之类的基于浏览器的现代Web技术的客户端渲染方式。比如比较流行的商用云端信息可视化解决方案以Tableau Online和TIBCO Spotfire Cloud为例。这些解决方案提供了SaaS工具,用于本地或在线数据创建各种交互式可视化,并允许在用户之间共享可视化结果。这些商业解决方案通常可支持非常大的数据集和许多并发用户。Cesium.js则是用于地理空间数据可视化的通用库,它基于WebGL进行快速渲染。其支持各种标准数据格式以及glTF格式,用于在客户端和服务器之间进行3D数据交换。而EverAPI库则主要针对工程类3D模型的可视化,其支持各种工程类数据格式如stp、stl、obj等,并默认集成了针对机械领域对3D模型常用的操作功能,如结构树、剖切图、标注等。

    四、Web可视化技术的分类

    文章调研了很多Web可视化应用案例(可见原文的参考文献),对基于Web可视化应用程序进行了一个分类,来评估相应可视化的技术应用发展。分类的第一要素是按各类应用程序所采取的可视化基础框架划分(比如Web服务、网格化、云端、浏览器本地渲染方式) ,第二要素则是按渲染的技术和算法方法(与可视化的数据类型相关)划分,第三要素则是按数据传输和渲染的优化算法划分。另外,还使用了其他的特征,比如压缩算法和GPU加速优化算法的使用,因为两者都可能对可视化的交互性产生重大影响。下图则为文章对第3节中介绍的基于Web的可视化应用程序进行的分类结果,展示了各应用程序使用了哪些技术方法和基础框架。表中,各应用案例根据各自的行业领域进行了分类,同一应用领域之间又按时间的先后进行了排序,以便分析技术发展的潜在趋势。

    da32539804fcbc24e7cf2c74b1e4df5e.png

    五、总结

    由于仿真技术、传感器技术和各类信息采集技术的发展(更不用说物联网的发展),远程可视化引起了人们的广泛兴趣,并努力利用更为强大的技术资源来辅助科学家和工程师们更好的分析和理解这些庞大的数据集。远程可视化的主要挑战仍然是带宽和延迟。其中带宽的问题大家已通过各种压缩技术和视频编码技术来试图缓解。而网络延迟还没有得到十分充分的解决方案。
    过去服务端进行远程渲染、通过图像/视频流的传输实现远程可视化的方案,是建立在用户客户端没有足够的计算能力以实现交互性渲染的基础上。但是,随着移动设备上CPU和GPU技术以及网络技术的改进,这种情况正在发生改变。将昂贵的预处理步骤放到服务器或云端、在用户客户端执行渲染的混合可视化方案可能更加有前途,因为这充分利用了各端的可用计算资源。此外,在用户客户端渲染可解决网络延迟问题,这对于交互式可视化至关重要。随着数据集的不断增长,即使有可能可视化所有数据,由于人类视觉系统的限制,生成的图像也可能变得难以理解。于是基于查询的可视化技术也变得越来越重要,其仅提取与当前任务相关的数据子集而不是一次可视化所有数据,这大大减少了带宽需求,并将本地渲染的计算要求降至最低。这种大型数据集的可视化可能需要类似于数据库的数据管理功能辅助。在数据管理和分析平台的基础上构建可视化算法将使可视化算法免于数据管理问题和数据源异构性的挑战。可视化层将仅关注可视化的渲染步骤, 数据访问和过滤可以由单独的数据服务层处理。WebGL和HTML5使得浏览器有能力成为部署交互式图形应用程序的首选平台。鉴于跨平台的浏览器无处不在,可视化工具可以利用所有可用的计算资源来支持异地研究团队实现协作可视化。通过将移动、Web和云计算技术相结合,可以将全球各地的专家召集起来共同解决更为复杂的问题,从而加快科学研究。总之,Web可视化的优势十分明显,尤其是对于那些潜在用户而言(即那些并不是每天盯着数据,但指不定什么场景下就成为数据可视化展示的观众)。当不需要安装任何软件就可以获得可视化结果的呈现时,Web可视化方案成为内容传播和教育的最佳选择。尤其是随着5G的推广,带宽和延迟带来的限制将越来越少。

    展开全文
  • 关键字: web组态编辑器集成,web组态页面集成,web可视化组件,web SCADA前端和后端,web可视化编辑器 web组态编辑器web图形可视化软件 web可视化编辑器,又称WEB组态可视化软件,即用户可以在web页面编辑器上直接搭建...

    关键字: web组态编辑器集成,web组态页面集成,web可视化组件,web SCADA前端和后端,web可视化编辑器

    web组态编辑器web图形可视化软件

    web可视化编辑器,又称WEB组态可视化软件,即用户可以在web页面编辑器上直接搭建出一个行业应用系统出来。web组态可视化编辑器能够运用在哪些场景中呢?

    web组态可视化编辑器为工程用户提供了二次开发的可能,不用编程、不用写代码,通过可视化界面即可生成web页面,开发出一个应用系统来,在电力、物联网、大数据平台有广泛的应用。

    一个好的应用系统,应该给用户提供业务自定义的工具。一个好的应用系统,应该采用图文并茂的方式将复杂的业务逻辑直观化、可视化。

    多比web组态可视化编辑器

    web组态软件是基于浏览器的应用,通过浏览器操作组态编辑器、浏览组态画面,实现工程管理、设备组态编辑以及设备组态运行三大功能。换句话说,web组态软件分编辑态和运行态。通过实现图元组态、可视化图表组态、数据库组态的配置与关联,网关采集数据的实时推送,实现基于Web服务的实时数据监控和可视化展示,服务端的分项目分权限的多用户访问等等。

    从用户操作与界面呈现的角度来说,WEB组态软件采用标准HTML5技术,基于B/S架构进行开发,支持WEB端跨平台呈现,在浏览器端完成便捷的人机交互,简单的拖拖拽拽即可完成web可视化页面的编排设计工作,让用户不需要编写计算机程序,不需要编程知识,就能通过拖拽和配置实现应用系统的功能。

    从软件架构来说,WEB组态软件包括前端和后端。

    ## 前端:主要实现图形可视化编辑,包括图元、图表等等。

    ## 后端:与数据联动,支持多数据源,包括数据库或设备实时采集等等。

    B/S结构的Web SCADA系统必须具备以下特征

    1,对不同控制对象均可方便组态 ,只是在算法组态时调用不同图形元素。

    2,控制人员用可视化语言进行“画图”编辑 ,鼠标连线。

    3,模块参数可动态改变。
    4,开放性 ,可接入用户自定义模块。
    5,与图形组态软件溶为一体 ,组成易用的图形仿真组态软件。
    6,支持图形化建模,自动化程度高,可维护性好;
    7,支持在线模块级和源代码级的调试;

    Q&A

    web组态是基于ActiveX实现的吗?

    Activex是由微软开发,所以在支持上,目前原生态支持的只有IE,其他浏览器想要支持activex, 需要额外做一些设置或安装补丁包。并且从2015年微软Edge浏览器不再支持ActiveX。

    web组态基于BS架构,采用html5和JavaScript,具有良好的集成性和技术前瞻性。

    web组态的图元库可以扩展吗?

    web组态支持图元自扩展,SVG格式,以支持图形缩放。

    多比组态可视化平台widget

    更多的web组态集成案例,见web SCADA

    总结:web组态编辑器可视化编辑器软件为工程用户提供了二次开发的可能,不用编程不用写代码,通过可视化界面即可生成web页面。web SCADA组态编辑器软件,经过数年的积累和行业用户的需求定制,包括完备的前端(图形可视化)和后端(与数据联动,数据库或实时采集)。web组态可视化平台基于B/S架构,采用html5和JavaScript,具有良好的集成性。

    展开全文
  • EverCraft一直在关注Web可视化技术的发展,本文对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report in Web-based ...
  • 为您提供App Builder web可视化开发工具下载,App Builder是一款专为Openbiz Cubi平台而设计的web可视化开发工具,App Builder包含了两个功能强大且简单易用的生成向导以及直观的元数据编辑器,使用方便。...
  • 另一方面,高效便捷地进行临近空间数据Web可视化和信息提取是临近空间数据应用不断深入和扩展的必然需求,但是,已有的临近空间数据类型繁杂和数据量巨大,成为Web传输和实时可视化的关键瓶颈。本文针对Web 数字地球...
  • 关键字: web组态编辑器集成,web组态页面集成,web可视化组件,web SCADA前端和后端,web可视化编辑器web组态编辑器web图形可视化软件web可视化编辑器,又称WEB组态可视化软件,即用户可以在web页面编辑器上直接搭建出一...
  • EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report ...
  • lykops是一套web可视化的运维自动化项目,基于python3 django开发的。可视化、简化执行ansible任务,并提供详细的任务执行报告。
  • 我刚刚发现不纯网并对使用他们的工作空间可视化数据所能取得的成就印象深刻。虽然该平台可以免费使用,但还没有开源。这会导致一些问题,因为API部分与.com网站(例如易趣)一起使用,因此我无法将易趣物品可视化为...
  • EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report ...
  • docker的4种web可视化管理工具
  • 网页设计作业-Web可视化仪表板(纬度) 网页设计挑战 纬度-具有姿态的纬度分析仪表板 在构建此仪表板时,我们将为每个图创建单独的页面,并在它们之间进行导航。 这些页面将包含可视化效果及其相应的说明。 我们还...
  • Python的Web可视化框架Dash
  • app builder 2021是一款专web可视化开发工具,能够为现代移动和桌面浏览器以及Google Android,Apple iOS和Microsoft Windows等平台创建HTML5应用程序,非常适合那些想深入挖掘代码的人,包含了两个功能强大且简单...
  • web可视化技术发展(1/6) EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., ...
  • 数据新闻:使用Python,R和Web可视化,数据新闻和易于复制的笔记本
  • App Builder(web可视化开发工具)是一款来自国外的具有交互性图形界面的web可视化开发工具,主要用于创建移动和桌面的HTML5应用程序、WebApps、Progressive WebApps、WebExtensions和Hybrid应用程序,你不需要拥有很...
  • HTML我帮您打造微信小程序web可视化开发者工具是一款的可视化Web应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成身微信小程序和面向手机的移动应用开发;高效、稳定和可扩展的特点...
  • web可视化编辑器

    2010-08-04 11:14:35
    web可视化编辑器在线编辑器 http://www.edojs.com/ide/
  • EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report ...
  • EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report ...
  • EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report ...
  • EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report ...
  • EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,422
精华内容 4,968
关键字:

web可视化