АРХИТЕКТУРА ИНТЕРАКТИВНОСТИ ВИЗУАЛИЗАЦИИ ДАННЫХ
ARCHITECTURE OF DATA VISUALISATION INTERACTIVITY

УРОВЕНЬ ТЕХНИКИ
Архитектура интерактивности визуализации данных - это процесс, который позволяет осуществлять интерактивную визуализацию данных способом, который может максимизировать совместное использование программ на многих различных платформах рендеринга (получения изображения по модели с помощью компьютерной программы). В некоторых ситуациях признаки визуализации данных должны быть повторно реализованы полностью внутри разных платформ рендеринга из-за существенных различий среди платформ рендеринга. Интерактивная визуализация данных может позволить пользователям манипулировать частями визуализации, такой как диаграмма рассеивания, чтобы анализировать данные. Например, диаграмма рассеивания может содержать тысячи точек данных, которые могут усложнить анализ трендов или структур. Перетаскивание индикатора выбора вокруг набора точек данных на диаграмме рассеивания может увеличить масштаб изображения точек данных, таким образом показывая больше деталей. Традиционной стратегией является полностью повторно реализовать признак изменения масштаба для каждой из множества платформ рендеринга, таких как GDI/GDI+, Silverlight, WPF и C# winforms. Это часто вызывает проблемы, потому что традиционная стратегия может привести к большому количеству повторных попыток и вероятности несовместимости, ошибок и несоответствий в представлении. Мотивация для развития совместно используемой архитектуры для интерактивной визуализации данных служит растущей пользовательской потребностью в непротиворечивой интерактивности по изобилию технологий рендеринга и приложений, использующих их.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Может быть предоставлена архитектура интерактивности визуализации данных. Это раскрытие изобретения предоставлено, чтобы ввести набор концепций в упрощенной форме, которые дополнительно описываются ниже в подробном описании. Это раскрытие изобретения не предназначено для того, чтобы определить ключевые признаки или существенные признаки заявленного предмета. Также это раскрытие изобретения не предназначено для использования в качестве ограничения объема заявленного объекта изобретения.
Может быть предоставлена архитектура интерактивности визуализации данных. Архитектура может позволить создание визуализации данных, такой как диаграмма, и может показывать интерактивный признак на визуализации. Архитектура может обеспечить интеграцию с многочисленными платформами рендеринга. Когда пользователь выбирает показываемый признак, архитектура может преобразовать этот выбор в общий формат и модифицировать визуализацию данных согласно структурным правилам независимо от платформы рендеринга.
Как предшествующее общее описание, так и нижеследующее подробное описание, предоставляют примеры и являются лишь пояснительными. Соответственно, предшествующее общее описание и нижеследующее подробное описание не должны рассматриваться в качестве ограничительных. Более того, признаки или изменения могут быть предоставлены дополнительно к тем, которые изложены здесь. Например, варианты осуществления могут быть направлены на различные комбинации и подкомбинации признаков, описываемых в подробном описании.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Сопроводительные чертежи, которые включены в настоящее раскрытие и составляют его часть, иллюстрируют различные варианты осуществления настоящего изобретения. На чертежах:
Фиг.1 - блок-схема архитектуры интерактивности визуализации.
Фиг.2 - схема операционной среды.
Фиг.3 - диаграмма, иллюстрирующая интерактивный признак.
Фиг.4 - блок-схема последовательности операций способа для предоставления архитектуры интерактивности визуализации.
Фиг.5 - блок-схема последовательности операций подпрограммы, используемой в способе по фиг.4 для преобразования выбранного элемента в общий формат.
Фиг.6A-6J - диаграммы, иллюстрирующие типы и признаки интерактивных диаграмм.
Фиг.7 - блок-схема системы, включающей в себя вычислительное устройство.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Нижеследующее подробное описание ссылается на сопроводительные чертежи, где, возможно, одинаковые ссылочные позиции используются на чертежах и в нижеследующем описании, чтобы указывать на одинаковые или схожие элементы. Хотя могут быть описаны варианты осуществления, однако возможны изменения, адаптации и другие осуществления. Например, замены, добавления или изменения могут быть произведены с элементами, проиллюстрированными на чертежах, а способы, описываемые в материалах настоящей заявки, могут быть изменены путем замены, переупорядочения или добавления этапов к раскрытым способам. Соответственно, нижеследующее подробное описание не ограничивает изобретение. Напротив, правильный объем изобретения определяется прилагаемыми пунктами формулы изобретения.
Может быть предоставлена архитектура интерактивности визуализации данных. Совместимые с вариантами осуществления настоящего изобретения платформа 105 визуализации данных Windows и платформа 150 визуализации данных OS X могут каждая содержать совместное ядро 100, содержащее библиотеки программного обеспечения и/или утилиты для обеспечения интерактивных визуализаций. Совместное ядро 100 может быть реализовано, например, на C++ или C# и может не зависеть от платформы. Совместное ядро 100 может содержать утилиты визуализации для предоставления структур, форм и/или геометрии, линейных сервисов, трехмерного рендеринга, формирования кадра анимации и/или интерактивных активных участков, интерфейсов прикладного программирования (API).
Платформа 100 визуализации данных может представлять множество известных признаков интерактивности, собранных из существующих клиентов визуализации данных. Например, совместное ядро 100 может содержать утилиты для отображения по меньшей мере одной секторной диаграммы, гистограммы, диаграммы рассеяния, столбчатой диаграммы, линейного графика, комбинированной гистограммы, кольцевой диаграммы, лепестковой диаграммы, поверхностной диаграммы, кружковой диаграммы и биржевой диаграммы. Каждый тип диаграммы может содержать по меньшей мере один интерактивный признак, такой как признак изменения данных, признак фильтрования данных и признак визуальной настройки. Каждый тип диаграммы может содержать интерактивные признаки, характерные для этого типа и/или интерактивные признаки, общие для множества типов. Например, секторная диаграмма может содержать характерный для типа диаграммы признак визуальной настройки, позволяющий пользователю указывать («кликать») и выбирать клин секторной диаграммы и увеличивать клин и отображать дополнительную информацию об основных данных, представленных клином. Секторная диаграмма может дополнительно содержать признак, общий для множества типов, такой как позволяющий пользователю перетаскивать отображение условного обозначения в другое местоположение. Признаки изменения данных могут содержать получение изменений элементов основных данных визуализации, таких как изменения значения точки на графике и обновления визуализации, соответственно. Признаки фильтрования данных могут содержать обеспечение возможности выбора подмножества точек данных, как например, через поиск, изменение масштаба, сдвиг или выбор другого подмножества. Признаки визуальной настройки могут содержать получение изменений визуального внешнего вида визуализации, таких как изменение цвета, ширины и/или типа линии, и/или иконки представления точки. Другие признаки интерактивности могут содержать перемещение оси графика и/или оси координат, настройку ширины представления столбца и/или линейки, итерирование множества точек данных, предоставление дополнительной информации о секции и/или точке визуализации, предсказание по меньшей мере одного эффекта изменения данных, копирование визуализации полностью и/или частично, сортировку данных, переупорядочение точек данных и/или вводимых условных обозначений, изменение размеров точек данных и/или структурных элементов визуализации, выделение, поворот, вращение и отображение всплывающей подсказки. Совместимый с вариантами осуществления изобретения пользовательский выбор интерактивного признака может быть достигнут через любой ввод, полученный от пользовательского устройства ввода, связанного с показываемым интерактивным признаком, такой как движение указателя по области визуализации, ввод с клавиатуры и/или перемещение и/или нажатие мыши.
Платформа 105 визуализации данных Windows и платформа 150 визуализации данных OS X могут содержать совместные интерфейсы прикладного программирования (APIs), такие как C++ АРI 110 и С API 115. Платформа 105 визуализации данных может содержать утилиты, специфические для платформы Windows, такие как библиотека 120 ввода/вывода файла Windows и библиотека 125 интерфейса пользователя (UI) Windows. Совместимая с вариантами осуществления изобретения библиотека 120 ввода/вывода файла и библиотека 125 UI могут быть реализованы как динамически подключаемые библиотеки (DLLs). Платформа 150 визуализации данных может содержать утилиты, специфические для платформы OS X, такие как библиотека 155 ввода/вывода файла OS X и библиотека 160 интерфейса пользователя (UI) OS X.
Совместное ядро 100 может показывать взаимодействия в каждом типе диаграмм через объекты активных участков, которые могут выявлять область диаграммы, для которой интерактивный признак может быть доступен. Для каждой платформы рендеринга объект интеграции может содержать код интеграции, чтобы предоставить общую информацию интерфейса, которая может быть использована платформой визуализации данных для этой платформы рендеринга. Например, платформа 105 визуализации данных Windows может содержать объект 130 интеграции Win32, а платформа 150 OS X визуализации данных может содержать объект 165 интеграции OS X. Объект интеграции для каждой платформы визуализации данных может содержать библиотеки программного обеспечения и, чтобы обеспечить обратную связь курсора мыши и утилиту проверки нажатия, утилиту цикла перетаскивания, которая может захватывать «мышь вниз», «перемещение мыши» и «мышь вверх» (например, нажатие, перетаскивание и отпускание), утилиту для рисования изображения перетаскивания, которая может быть предоставлена совместно используемым ядром 100 при перетаскивании, и утилиту для фиксации списка изменений. Список изменений может содержать список пользовательских вводов, таких как перемещения мыши и/или нажатия клавиш, записанных во время цикла перетаскивания. Список изменений может описывать изменения данных (например, значение изменения, значения переупорядочения, фильтра по области), а также изменения формы (движение, поворот, размер).
Каждый объект интеграции может отвечать за преобразование характерных для платформы данных пользовательского ввода в общую версию для посылки в совместное ядро 100. Объект интеграции может не нуждаться в какой-либо характерной для диаграммы информации, чтобы предоставить эти утилиты, позволяющие одиночному объекту показывать все из интерактивных признаков, связанных с каждым типом диаграммы, предоставленным совместно используемым ядром 100.
Различные типы диаграмм могут быть показаны платформой визуализации данных (DVP) и могут каждый иметь характерные области интерактивности, которые являются уникальными для этих типов диаграмм. Чтобы показать эти интерактивные области, в верхнем краю столбца, например, DVP может показывать активный участок. Каждый тип диаграммы может кодировать различные активные участки, характерные для этого типа диаграммы, и с помощью этого показывать интерактивность. Клиент может кодировать самый общий интерфейс, который может позволить клиенту извлекать пользу из интерактивных признаков, показываемых активными участками на основании взаимодействия с мышью и этапом простой фиксации. Общий интерфейс может содержать три части: логику проверки нажатия мыши, цикл перетаскивания и этап фиксации. Если эти части присутствуют, клиент может подключаться ко всем характерным для диаграмм активным точкам, которые может выявить DVP.
Проверка нажатия может содержать передвижение устройства ввода пользователя и запрашивание клиентом информации из DVP по поводу того, где находится курсор пользовательского ввода. DVP может отвечать этой информацией, например, точкой данных, или формой, или ничем. DVP может также, скажем, информировать клиента о том, что активный участок находится под курсором. Затем клиент может получить ссылку на активный участок и перейти к циклу перетаскивания. По мере того, как курсор пользовательского ввода клиента передвигается, как например, когда пользователь нажал на мышь и двигает курсор по экрану, клиент может обновить активный участок своим местоположением. Активный участок может затем предоставить передвигаемое изображение, чтобы получить обратную связь пользователя. Например, активный участок может предоставить каркас и/или полноценную форму с заполнением или серым цветом. Когда пользователь отпускает мышь, объект активного участка может фиксировать изменения, а изменения могут быть закодированы для DVP. Совместимые с вариантами осуществления изобретения изменения могут храниться в объекте списка изменений, который пользователь и/или клиент могут применять полностью и/или частично. Когда изменения зафиксированы, DVP может отражать все эти изменения внутри визуализации данных.
На фиг.2 показана схема операционной среды 200. Операционная среда 200 может содержать сервер 210 баз данных, клиента 220 Windows, клиента 230 Macintosh и мобильного клиента 240. Сервер 210 баз данных, клиент 220 Windows, клиент 230 Macintosh и мобильный клиент 240 могут каждый содержать вычислительное устройство 700, описываемое более подробно ниже относительно фиг.7, и может быть соединен через сеть 250, такую как Интернет или корпоративная интрасеть. Клиент 220 Windows, клиент 230 Macintosh и мобильный клиент 240 могут каждый содержать платформу визуализации и платформу визуализации данных. Например, клиент 220 Windows может содержать платформу 105 визуализации данных Windows, а клиент 230 Macintosh может содержать платформу 150 визуализации данных OS X. Платформы визуализации данных клиента 220 Windows, клиента 230 Macintosh и мобильного клиента 240 могут каждая содержать совместное ядро 100. Каждый клиент может предоставлять разную платформу рендеринга, используемую для отображения визуализации.
Интерактивность может быть достигнута главным образом через нажатие и/или перетаскивание устройства ввода 712, такого как мышь, сенсорная панель, дисплей множественного касания, сенсорный экран и/или стило. Может также быть предоставлена интерактивность, основанная на клавиатуре. Совместимый с вариантами осуществления изобретения каждый клиент может поддерживать дополнительные устройства интерфейса пользователя и/или признаки. Например, клиент 230 Macintosh может предоставлять поддержку для устройства интерфейса пользователя Apple Remote, которое не может поддерживаться клиентом 220 Windows.
На фиг.3 представлена диаграмма, иллюстрирующая интерактивный признак. Например, линейный график 300 может содержать множество наборов данных 305, нанесенных на график. Линейный график 300 может дополнительно содержать ось 310 x, ось 315 y и условное обозначение 320. Линейный график 300 может быть сформирован платформой 105 визуализации данных Windows на клиенте 220 Windows согласно информации типа диаграммы, связанной с совместным ядром 100 и данными, хранимыми на сервере 210 баз данных. Совместимые с вариантами осуществления изобретения данные, описываемые линейным графиком 300, могут храниться локально на клиенте 220 Windows и/или другом вычислительном устройстве. Платформа 105 визуализации данных Windows может показывать активные участки платформе визуализации клиента 220 Windows. Например, активные участки могут быть показаны, делая возможным интерактивность с условным обозначением 320 и/или осью 310 x, такую как изменение названия одного из множества наборов 305 данных.
Интерактивные местоположения в визуализации могут быть показаны через встроенную совокупность объектов 'активных участков'. Каждый тип структуры визуализации может показывать активные участки, характерные для структуры. Например, столбчатая диаграмма может показывать активный участок для перетаскивания верхнего края столбца вертикально. Секторная диаграмма может показывать активный участок для каждой стороны сектора, который может перетаскиваться в направлении по часовой стрелке или против часовой стрелки. Перемещаясь и вращаясь, формы, такие как условные обозначения и названия, могут показываться через активные участки общих форм.
Активные участки могут показываться клиенту через проверку нажатия. Клиент может использовать объект интеграции, чтобы определить, какие объекты находятся под курсором 325 мыши. Совместное ядро 100 может возвращать ссылку на форму нажатия и/или ссылку на вновь созданный активный участок. Совместное ядро 100 может делегировать обнаружение активного участка классу активной структуры для графика, который может анализировать то, какие геометрические кривые были нажаты. Если не была нажата область, соответствующая интерактивному признаку, совместное ядро 100 не может вернуть ссылку активного участка. Если активный участок был нажат, совместное ядро 100 может создать новый объект активного участка с подсчитанной ссылкой, который может записывать изначальное положение проверки нажатия. Платформа визуализации может принимать описание того, какие изменения произойдут, и может отображать подходящий курсор и/или строку-подсказку и/или игнорировать активный участок.
Как только клиент обнаруживает, что активный участок перетаскивается мышкой, он может перейти к стандартному циклу перетаскивания. Например, клиент 220 Windows может вводить перетаскивание связывания и встраивания объектов (OLE) и/или цикл простого сообщения. Внутри цикла каждое движение мыши, например, способом, который сообщает положение, к которому перетаскивается курсор 325 мыши. Клиент может запрашивать активный участок для обновленного списка изменений и/или изображение перетаскивания, такое как изображение 330 перетаскивания. Тип изменения, связанный с активным участком, может изменяться на основании местоположения мыши. Например, перетаскивание сектора из секторной диаграммы может просто передвигать форму, тогда как перетаскивание сектора на другой сектор может переупорядочить данные.
Изображение 330 перетаскивания, возвращаемое через активный участок, может быть получено клиентом в форме геометрического итератора, который может быть тем же объектом, используемым, чтобы нарисовать статическое изображение диаграммы. Таким образом, как только клиент может нарисовать диаграмму, он должен быть способен нарисовать изображение перетаскивания посредством запуска того же кода. Внутри совместного ядра 100, изображение перетаскивания может быть сформировано посредством создания временной формы, скопированной из изначальной геометрии и измененной, чтобы отражать текущий список изменений.
Когда происходит событие «мышь вверх», операция перетаскивания может быть закончена, и изменения могут нуждаться в фиксации. В этот момент клиент может запросить у активного участка его список изменений в последний раз и может зафиксировать список изменений в совместном ядре 100, чтобы применить изменения внутри. Совместимый с вариантами осуществления изобретения клиент может обходить список изменений и выборочно применять изменения желательным образом. Например, клиент диаграмм Office может передавать изменения данных обратно в таблицу Excel, делая возможным возврат изменений в совместное ядро 100 позже.
Другая показываемая интерактивность в линейном графике 300 может содержать, например, признак визуальной настройки, такой как операция изменения масштаба. Объект 130 интеграции Win32 может принимать событие «мышь вниз» (например, нажатие кнопки мыши) от пользовательского устройства ввода и начинать отслеживание дополнительного ввода и добавление каждого ввода к списку изменений до того, как получено событие «мышь вверх» (например, отпускание кнопки мыши). Например, пользователь может поместить курсор 325 в одно положение и перетаскивать мышь, чтобы выбрать область линейного графика 300. Совместное ядро 300 может предоставлять независимое от платформы графическое представление пользователю, чтобы указать выбранную область, такую как изображение 330 перетаскивания. Как только событие «мышь вверх» получено, объект 130 интеграции Win32 может фиксировать список изменений в совместном ядре 100, которое в свою очередь может формировать обновленную визуализацию 350, которая может отображать увеличенную визуализацию выбранной области линейного графика 300.
Активные участки, показанные совместным ядром 100, могут представлять полный набор известных интерактивностей, собранных из существующих клиентов визуализации данных. Могут иметься активные участки, которые совместное ядро 100 не показывает так, как желательно клиенту, или могут быть сценарии, где встроенный активный участок будет недостаточным. Совместимое с вариантами осуществления изобретения совместное ядро 100 может показывать дополнительные API, чтобы позволить клиенту расшириться по мере необходимости. Например, совместное ядро 100 может показывать API для клиентов, чтобы извлекать характерную для структуры информацию проверки нажатия, чтобы предоставить итерацию геометрии точек данных и/или чтобы предоставить предсказание изменения «что-если».
Клиентам может быть желательным понимать, какие интересующие части структуры находятся под курсором мыши. Например, офисным приложениям может быть желательным комментировать диаграмму с помощью соединительной стрелки из нарисованных форм. Чтобы сделать это, совместному ядру 100 может понадобиться предоставить субэлементную информацию проверки нажатия, такую как "над точкой #3 данных в серии #1" или "над границей роста точки данных" или "над временной отметкой оси значения со значением 10".
Точки данных могут быть визуализированы как пути внутри формы ряда. Клиентам может быть желательным выделять отдельные точки данных (например, при наведении мыши) и, таким образом, может потребоваться способность итерировать геометрию, характерную для одиночной точки данных, а не целого ряда.
Клиентам может потребоваться, чтобы вся диаграмма возвращалась с изменением, предсказуемо примененным в сценарии «что-если». Например, при переупорядочении точек данных, клиент может скорее пожелать показать точку данных, правильно вставленную в ее новое местоположение, чем показать ореол 'маркера вставки'. Чтобы сделать это, клиент может создать и передать список изменений на совместное ядро 100, которое может затем создать скопированную при записи копию диаграммы, применить список изменений и вернуть геометрический итератор, направленный на новую диаграмму, которую должен нарисовать клиент.
Изменения, произведенные над совместным ядром 100 через доступ API или взаимодействие с пользователем (например, активные участки), должны иметь возможность отмены. Чтобы достичь этого, объект транзакции может существовать в совместном ядре 100, чтобы позволить клиенту разделить и записать изменения на уровне команды. Например, объект транзакции может показывать метод GetUndoRecord(), который возвращает объект UndoRecord, чтобы хранить информацию отката/повтора. Объект UndoRecord может иметь методы Undo() и Redo(), которые должны запускаться из команд отката/повтора клиента. Для пользовательских изменений, произведенных через активные участки, объект списка изменений, возвращаемый активным участком, может также показывать объект транзакции, чтобы отследить его состояние отката/повтора.
На фиг.4 показана блок-схема последовательности операций, формулирующая общие этапы, включенные в способ 400, совместимый с вариантом осуществления изобретения для предоставления архитектуры интерактивности визуализации. Способ 400 может быть осуществлен, используя вычислительное устройство 700, как описано более подробно ниже относительно фиг.7. Способы осуществления этапов способа 400 будут описаны более подробно ниже. Способ 400 может начинаться в начальном блоке 410 и продолжаться до этапа 420, где вычислительное устройство 700 может создать визуализацию данных. Например, вычислительное устройство 700 может содержать клиента 220 Windows и может использовать платформу 105 визуализации данных Windows, чтобы создать визуализацию, такую как секторная диаграмма, гистограмма, точечная диаграмма, столбчатая диаграмма, линейный график, комбинированная гистограмма, кольцевая диаграмма, лепестковая диаграмма, поверхностная диаграмма, кружковая диаграмма и биржевая диаграмма.
От этапа 420 способ 400 может переходить к этапу 430, на котором вычислительное устройство 700 может показывать по меньшей мере один интерактивный признак для визуализации данных. Например, вычислительное устройство 700 может показывать активный участок, связанный с интерактивным признаком, таким как признак изменения данных, признак фильтрования данных и/или признак визуальной настройки.
От этапа 430 способ 400 может переходить к этапу 440, на котором вычислительное устройство 700 может предоставлять объект интеграции, связанный с по меньшей мере одной из множества платформ рендеринга. Например, вычислительное устройство 700 может использовать платформу рендеринга, такую как GDI, GDI+, Silverlight, WPF, C# winforms, и/или QT, чтобы визуализировать графические отображения и/или визуализации данных.
От этапа 440 способ 400 может переходить к этапу 450, на котором вычислительное устройство 700 может принимать выбор по меньшей мере одного местоположения на визуализации данных от пользовательского устройства ввода. Например, пользователь может выбрать точку на визуализации данных, используя мышь, стило, клавиатуру и/или сенсорный экран.
От этапа 450 способ 400 может переходить к этапу 460, на котором вычислительное устройство 700 может определять, связано ли выбранное по меньшей мере одно местоположение с активным участком. Например, вычислительное устройство 700 может определять, содержит ли выбранное по меньшей мере одно местоположение точку данных, структурный элемент визуализации данных, такой как осевая линия, пункт меню интерфейса пользователя, элемент команды интерфейса пользователя и/или элемент управления визуализацией данных.
Если на этапе 460 вычислительное устройство 700 определяет, что выбранное по меньшей мере одно местоположение связано с активным участком, способ 400 может переходить к этапу 470, на котором вычислительное устройство 700 может преобразовывать выбор по меньшей мере одного интерактивного признака через объект интеграции в общий формат, связанный с платформой визуализации данных. Преобразование выбора через объект интеграции в общий формат описывается ниже более подробно относительно фиг. 5. Если на этапе 460 вычислительное устройство 700 определяет, что выбранное по меньшей мере одно местоположение не связано с активным участком, способ 400 может вернуться на этап 450, где вычислительное устройство 700 может ожидать, чтобы получить другой выбор пользовательского ввода.
От этапа 470 способ 400 может переходить к этапу 480, на котором вычислительное устройство 700 может обновлять визуализацию данных согласно выбранному интерактивному признаку. Как только вычислительное устройство 700 обновляет визуализацию данных на этапе 480, способ 400 может завершиться на этапе 490.
На фиг.5 показана блок-схема последовательности операций подпрограммы, используемой в способе по фиг.4 для преобразования выбранного элемента в общий формат. Подпрограмма 470 может находиться на этапе 510, где вычислительное устройство 700 может захватывать по меньшей мере одну характеристику выбора. Например, вычислительное устройство 700 может захватывать характеристику выбора, такую как нажатие мыши, операция перетаскивания, операция разжимания, движение мыши, операция прокручивания. Совместимая с вариантами осуществления изобретения захваченная по меньшей мере одна характеристика может быть закодирована в формат, связанный с платформами рендеринга.
От этапа 510 подпрограмма 470 может переходить к этапу 520, на котором вычислительное устройство 700 может отображать визуальную обратную связь, связанную с по меньшей мере одной характеристикой. Например, вычислительное устройство 700 может отображать визуальную обратную связь, такую как изменение курсора, рисование линии, рисование формы, изменение названия, изменение статуса отображения и/или отображение всплывающей подсказки.
От этапа 520 подпрограмма 470 может переходить к этапу 530, на котором вычислительное устройство 700 может преобразовывать захваченную характеристику выбора из формата кодирования, связанного с платформами рендеринга, в общий формат кодирования, связанный с платформой визуализации данных. Например, платформа визуализации данных может использовать связанный объект интеграции, чтобы преобразовывать характеристику выбора.
От этапа 530 подпрограмма 470 может переходить к этапу 540, на котором вычислительное устройство 700 может создавать список изменений согласно преобразованной по меньшей мере одной характеристике выбора. Например, вычислительное устройство 700 может создавать список изменений в ответ на получение характеристики выбора мыши вниз. Как только был создан список изменений, вычислительное устройство 700 может добавлять дополнительные характеристики выбора к списку изменений по мере их получения.
От этапа 540 подпрограмма 470 может переходить к этапу 550, на котором вычислительное устройство 700 может определять, завершен ли пользовательский выбор. Например, вычислительное устройство 700 может определять, что пользователь завершил цикл перетаскивания посредством отпускания кнопки мыши.
Если на этапе 550 вычислительное устройство 700 определяет, что пользовательский выбор завершен, подпрограмма 470 может переходить к этапу 560, на котором вычислительное устройство 700 может предоставлять список изменений для обработки. Например, вычислительное устройство 700 может предоставлять список изменений платформе визуализации данных. Если на этапе 550 вычислительное устройство 700 определяет, что пользовательский выбор не завершен, подпрограмма 470 может вернуться к этапу 510, на котором вычислительное устройство 700 может ожидать получения и захвата другого пользовательского выбора. Как только вычислительное устройство 700 обработает список изменений на этапе 560, подпрограмма 470 может завершиться и перейти к этапу 480 способа 400.
Вариант осуществления, совместимый с изобретением, может содержать систему для предоставления интерактивности визуализации данных. Система может содержать запоминающее устройство и обрабатывающий блок, соединенный с запоминающим устройством. Обрабатывающий блок может быть способным создавать визуализацию данных согласно совместной структуре, показывать по меньшей мере один интерактивный признак для визуализации данных, предоставлять объект интеграции, связанный с по меньшей мере одной из множества платформ визуализации, выбирать по меньшей мере один интерактивный признак, преобразовывать выбор по меньшей мере одного интерактивного признака через объект интеграции в общий формат, связанный с совместной структурой, и изменять визуализацию данных согласно выбранному интерактивному признаку. Объект интеграции может быть предоставлен для каждой из множества платформ рендеринга. Совместная структура может не зависеть от платформ рендеринга и может содержать, например, секторную диаграмму, гистограмму, точечную диаграмму, столбчатую диаграмму, линейный график, комбинированную гистограмму, кольцевую диаграмму, лепестковую диаграмму, поверхностную диаграмму, кружковую диаграмму и/или биржевую диаграмму. Интерактивный признак может содержать, например, признак изменения данных, признак фильтрования данных и/или признак визуальной настройки. Выбор по меньшей мере одного интерактивного признака может содержать получение ввода выбора от по меньшей мере одного из мыши, пера, клавиатуры и/или сенсорного экрана.
Обрабатывающий блок может быть дополнительно способным принимать местоположение для указателя пользовательского устройства ввода и извлекать информацию о полученном местоположении, в котором информация содержит по меньшей мере одно из следующего: описание возможных изменений визуализации данных, связанных с местоположением, и описание по меньшей мере одной точки данных в местоположении. Информация о полученном местоположении отображается во всплывающей подсказке.
Обрабатывающий блок может дополнительно показывать по меньшей мере один объект активного участка, характерный для структуры, такой как интерактивный признак управления клином в секторной диаграмме. Объект активного участка может быть связан с по меньшей мере одним структурным элементом визуализации данных, таким как осевая линия графика.
Другой вариант осуществления, совместимый с изобретением, может содержать систему для предоставления расширяемой интерактивности для визуализации данных. Система может содержать запоминающее устройство и обрабатывающий блок, соединенный с запоминающим устройством. Обрабатывающий блок может создавать визуализацию данных согласно набору данных, показывать по меньшей мере один активный участок, принимать выбор по меньшей мере одного активного участка, создавать список изменений, связанный с выбором по меньшей мере одного активного участка, хранить множество команд пользовательского ввода в списке изменений, обрабатывать список изменений и обновлять визуализацию данных согласно обработанному списку изменений. Например, мобильный клиент 240 может открыть файл диаграммы. Платформа визуализации данных (DVP) может создавать визуализацию данных согласно данным в файле диаграммы и показывать по меньшей мере одну область активного участка диаграммы, связанную с интерактивным признаком. Пользователь может выбрать показываемый активный участок устройством пользовательского ввода, а мобильный клиент 240 может принимать обратную связь от DVP, чтобы предоставить пользователю, такую как изменение внешнего вида курсора пользовательского устройства ввода и/или отображение строки-подсказки. Обратная связь может быть связана с по меньшей мере одним интерактивным признаком, связанным с активным участком, таким как изменение курсора в руку при выборе края столбца, чтобы указать на то, что край столбца может быть передвинут, чтобы расширить или сузить столбец.
По мере того, как пользователь управляет визуализацией данных, каждая манипуляция пользовательского ввода может быть добавлена к списку изменений в качестве команды. Когда пользователь закончил управление визуализацией данных, что может быть указано событием «мышь вверх», список изменений может быть обработан мобильным клиентом 240. Например, мобильный клиент 240 может фиксировать список изменений в DVP; DVP может затем итерировать через каждую команду, добавляемую к списку изменений, и обновлять визуализацию данных соответственно. Совместимое с вариантами осуществления изобретения мобильное устройство может позволять пользователю просматривать команды в списке изменений и применять их полностью и/или частично, как например, посредством выбора по меньшей мере одной из команд в списке изменений, чтобы применить визуализацию данных.
Еще один вариант осуществления, совместимый с изобретением, может содержать систему для предоставления интерактивности визуализации данных. Система может содержать запоминающее устройство и обрабатывающий блок, соединенный с запоминающим устройством. Обрабатывающий блок может создавать визуализацию данных согласно структуре, связанной с платформой визуализации данных, показывать по меньшей мере один интерактивный признак для визуализации данных, предоставлять объект интеграции, связанный с по меньшей мере одной из множества платформ рендеринга, причем платформа рендеринга содержит, например, GDI, GDI+, Silverlight, WPF, C# winforms, принимать выбор по меньшей мере одного местоположения на визуализации данных от пользовательского устройства ввода и определять, связано ли выбранное по меньшей мере одно местоположение с активным участком. Пользовательское устройство ввода может включать в себя мышь, перо, клавиатуру и/или сенсорный экран. Определение того, связано ли выбранное по меньшей мере одно местоположение с активным участком, может включать определение того, содержит ли выбранное по меньшей мере одно местоположение точку данных, структурный элемент визуализации данных, пункт меню интерфейса пользователя, элемент команды интерфейса пользователя и/или элемент управления визуализацией данных.
В ответ на определение того, что выбранное по меньшей мере одно местоположение связано с активным участком, обрабатывающий блок может дополнительно преобразовывать выбор по меньшей мере одного интерактивного признака через объект интеграции в общий формат, связанный платформой визуализации данных. Чтобы преобразовать выбор, обрабатывающий блок может дополнительно захватывать по меньшей мере одну характеристику выбора, отображать по меньшей мере одну визуальную обратную связь, связанную с по меньшей мере одной характеристикой, преобразовывать по меньшей мере одну характеристику выбора из формата кодирования, связанного с по меньшей мере одной из множества платформ рендеринга в общий формат кодирования, связанный с платформой визуализации данных, создавать список изменений согласно преобразованной по меньшей мере одной характеристике выбора и предоставлять список изменений платформе визуализации данных. Обрабатывающий блок может дополнительно обновлять визуализацию данных согласно предоставленному списку изменений и по меньшей мере одному свойству активного участка в по меньшей мере одном выбранном местоположении. Совместимая с вариантами осуществления изобретения по меньшей мере одна визуальная обратная связь может содержать, например, изменение курсора, рисование линии, рисование формы, изменение названия, изменение отображения статуса и/или отображение всплывающей подсказки. По меньшей мере, одна характеристика выбора может содержать, например, нажатие мыши, операцию перетаскивания, операцию разжимания, движение мыши и/или операцию прокручивания. Захваченная по меньшей мере одна характеристика может быть закодирована в формате, связанном с по меньшей мере одной из множества платформ рендеринга.
Фиг.6A иллюстрирует линейный график 600 и содержит всплывающую подсказку 602, отображаемую в качестве обратной связи пользователя в ответ на расположение курсора 604 пользовательского ввода над активным участком.
Фиг.6B иллюстрирует линейный график 610.
Фиг.6C иллюстрирует гистограмму (или столбчатую диаграмму) 620.
Фиг.6D иллюстрирует точечную диаграмму 630.
Фиг.6Е иллюстрирует кольцевую диаграмму 640.
Фиг.6F иллюстрирует комбинированную гистограмму 650.
Фиг.6G иллюстрирует лепестковую диаграмму 660.
Фиг.6Н иллюстрирует поверхностную диаграмму 670.
Фиг.6I иллюстрирует кружковую диаграмму 680.
Фиг.6J иллюстрирует биржевую диаграмму 690.
На фиг.7 показана блок-схема системы, включающей в себя вычислительное устройство 700. Совместимое с вариантом осуществления изобретения вышеупомянутое запоминающее устройство и обрабатывающий блок могут быть осуществлены в вычислительном устройстве, таком как вычислительное устройство 700 по фиг.7. Любая подходящая комбинация аппаратного обеспечения, программного обеспечения или микропрограммного обеспечения может использоваться, чтобы реализовать запоминающее устройство и обрабатывающий блок. Например, запоминающее устройство и обрабатывающий блок могут быть реализованы с помощью вычислительного устройства 700 или любого из вычислительных устройств 718 в комбинации с вычислительным устройством 700. Вышеупомянутая система, устройство и процессоры являются примерами, и другие системы, устройства и процессоры могут содержать вышеупомянутое запоминающее устройство и обрабатывающий блок, совместимый с вариантами осуществления изобретения. Более того вычислительное устройство 700 может содержать операционную среду для системы 100, как описано выше. Система 100 может функционировать в других средах и не ограничивается вычислительным устройством 700.
Как показано на фиг.7, система, совместимая с вариантом осуществления изобретения, может включать в себя вычислительное устройство, такое как вычислительное устройство 700. В базовой конфигурации вычислительное устройство 700 может включать в себя по меньшей мере один обрабатывающий блок 702 и системную память 704. В зависимости от конфигурации и типа вычислительного устройства системная память 704 может содержать, но не в качестве ограничения, энергозависимую (например, оперативное запоминающее устройство (ОЗУ, RAM)), энергонезависимую (например, постоянное запоминающее устройство (ПЗУ, ROM)) память, флэш-память или любую комбинацию. Системная память 704 может включать операционную систему 705, один или более программных модулей 706, и может включать платформу 707 визуализации данных. Операционная система 705, например, может быть подходящей для управления функционированием вычислительного устройства 700. В одном из вариантов осуществления программные модули 706 могут включать программу 720 просмотра визуализации данных. Более того, варианты осуществления изобретения могут осуществляться в сочетании с графической библиотекой, другими операционными системами или любой другой прикладной программой и не ограничиваются конкретным приложением или системой. Базовая конфигурация проиллюстрирована на фиг.7 этими компонентами внутри пунктирной линии 708.
Вычислительное устройство 700 может иметь дополнительные признаки или функциональность. Например, вычислительное устройство 700 может также включать дополнительные запоминающие устройства (сменные и/или несменные), такие как, например, магнитные диски, оптические диски или лента. Такая дополнительная память проиллюстрирована на фиг.7 сменным запоминающим устройством 709 и несменным запоминающим устройством 710. Компьютерные носители данных могут включать энергозависимые и энергонезависимые, сменные и несменные носители, реализуемые любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Системная память 704, сменный носитель 709 и несменный носитель 710 - все являются примерами компьютерных носителей данных (то есть, запоминающих устройств). Компьютерные носители данных могут включать, но не в качестве ограничения, ОЗУ, ПЗУ, электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или другую технологию памяти, CD-ROM, цифровой диск универсального назначения (DVD) или другую оптическую память, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения информации и доступ к которому может быть получен посредством вычислительного устройства 700. Любые такие компьютерные носители данных могут быть частью устройства 700. Вычислительное устройство 700 может также иметь устройство(а) 712 ввода, такие как клавиатура, мышь, ручка, звуковое устройство ввода, сенсорное устройство ввода и так далее. Устройство(а) 714 вывода, такие как дисплей, колонки, принтер и так далее, могут также быть включены. Вышеупомянутые устройства являются примерами, и могут использоваться другие.
Вычислительное устройство 700 может также содержать соединение 716 связи, которое может позволить устройству 700 взаимодействовать с другими вычислительными устройствами 718, как например, через сеть в распределенной вычислительной среде, например интрасеть или интернет. Соединение 716 связи - один из примеров средств связи. Средства связи могут типично быть осуществлены посредством машиночитаемых команд, структур данных, программных модулей или других данных в модулированном сигнале данных, таком как несущая волна или другой механизм передачи, и включают любые способы доставки информации. Термин "модулированный сигнал данных" может описывать сигнал, который имеет одну или более характеристик, устанавливаемых или изменяемых таким образом, чтобы закодировать информацию в сигнале. В качестве примера, но не ограничения, средства связи могут включать проводные среды, такие как проводная сеть или проводное прямое соединение, и беспроводные средства, такие как акустические, радиочастотные (RF), инфракрасные и другие беспроводные среды. Термин машиночитаемый носитель данных, используемый здесь, может включать как носители данных, так и средства связи.
Как установлено выше, число программных модулей и файлов данных может храниться в системной памяти 704, включая операционную систему 705. При реализации обрабатывающего блока 702 программные модули 706 (например, программа 720 просмотра визуализации данных) может выполнять процессы, включающие в себя, например, по меньшей мере один из этапов способа 400, как описано выше. Вышеупомянутый процесс является примером, и обрабатывающий блок 702 может выполнять другие процессы. Другие программные модули, которые могут использоваться в соответствии с вариантами осуществления настоящего изобретения, могут включать электронную почту и приложения контактов, приложения обработки текста, приложения электронных таблиц, приложения баз данных, приложения презентации слайдов, программы рисования или автоматизированные приложения и так далее.
В целом совместимые с вариантами осуществления изобретения программные модули могут включать подпрограммы, программы, компоненты, структуры данных и другие типы структур, которые могут выполнять конкретные задания или которые могут реализовывать конкретные абстрактные типы данных. Более того, варианты осуществления изобретения могут осуществляться с другими компьютерными конфигурациями системы, включая ручные устройства, многопроцессорные системы, основанную на микропроцессорах или программируемую потребительскую электронику, миникомпьютеры, универсальные компьютеры и тому подобное. Варианты осуществления изобретения могут также осуществляться в распределенных компьютерных средах, в которых задачи выполняются удаленными обрабатывающими устройствами, которые соединены через сеть связи. В распределенной компьютерной среде программные модули могут находиться как на локальных, так и на удаленных запоминающих устройствах.
Более того, варианты осуществления изобретения могут осуществляться в электрической схеме, содержащей дискретные электронные элементы, упакованные или интегрированные микросхемы, содержащие логические вентили, схеме, использующей микропроцессор, или в единичной микросхеме, содержащей электронные элементы или микропроцессоры. Варианты осуществления изобретения могут также осуществляться, используя другие технологии, способные выполнять логические операции, такие как, например, И, ИЛИ, НЕ, включая, но не в качестве ограничения, механические, оптические, жидкостные и квантовые технологии. В дополнение, варианты осуществления могут осуществляться на компьютере общего назначения или в любых других схемах или системах.
Варианты осуществления изобретения, например, могут быть реализованы как компьютерный процесс (способ), вычислительная система или как изделие, такое как компьютерный программный продукт или машиночитаемые средства. Компьютерный программный продукт может быть компьютерным носителем данных, читаемым компьютерной системой и кодирующим компьютерную программу команд для выполнения компьютерного процесса. Компьютерный программный продукт может также быть передаваемым сигналом на носителе, читаемом вычислительной системой, и кодирующим компьютерную программу команд для выполнения компьютерного процесса. Соответственно, настоящее изобретение может быть осуществлено в аппаратном обеспечении и/или в программном обеспечении (включая микропрограммное обеспечение, резидентное программное обеспечение, микрокод и так далее). Другими словами варианты осуществления настоящего изобретения могут принимать форму компьютерного программного продукта на подходящем для использования на компьютере или машиночитаемом носителе данных, имеющем подходящий для использования на компьютере или машиночитаемый программный код, осуществленный в среде для использования посредством или в связи с системой выполнения команд. Подходящее для использования на компьютере или машиночитаемый носитель может быть любым средством, которое может содержать, хранить, взаимодействовать, передавать или переносить программу для использования посредством или в связи с системой выполнения команд, устройством или механизмом.
Подходящий для использования на компьютере или машиночитаемый носитель может быть, например, но не в качестве ограничения, электронной, магнитной, оптической, электромагнитной, инфракрасной или полупроводниковой системой, устройством, механизмом или средой распространения. В качестве конкретных примеров машиночитаемых средств (не исчерпывающий список), машиночитаемый носитель может включать следующее: электрическое соединение, имеющее одно или более проводов, портативную компьютерную дискету, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), стираемое программируемое постоянное запоминающее устройство (СППЗУ или флэш-память), оптоволокно и портативное постоянное запоминающее устройство на компакт-диске (CD-ROM). Отметим, что подходящий для использования на компьютере или машиночитаемый носитель может быть даже бумагой или другим подходящим средством, на котором печатается программа, так как программа может быть электронным образом воспринята через, например, оптическое сканирование бумаги или другого средства, и затем может компилироваться, интерпретироваться или иначе обрабатываться подходящим образом, если необходимо, и затем сохраняться в компьютерной памяти.
Варианты осуществления настоящего изобретения, например, описаны выше со ссылкой на блок-схемы и/или операционные иллюстрации способов, систем и компьютерных программных продуктов согласно вариантам осуществления изобретения. Функции/действия, отмеченные в блоках, могут происходить не в том порядке, как показано на любой блок-схеме последовательности операций. Например, два блока, показанные в последовательности, могут фактически быть выполнены по существу одновременно, или блоки иногда могут быть выполнены в обратном порядке, в зависимости от включенной функциональности/действий.
В то время как были описаны конкретные варианты осуществления изобретения, могут существовать другие варианты осуществления. Более того, хотя варианты осуществления настоящего изобретения были описаны как связанные с данными, хранимыми в памяти и других носителях данных, данные могут также храниться на или считываться с других типов машиночитаемых средств, таких как вспомогательные запоминающие устройства, такие как жесткие диски, дискеты или CD-ROM, несущая волна из интернета или другие формы ОЗУ или ПЗУ. Более того, этапы раскрытых способов могут быть изменены любым образом, включая переупорядочение этапов и/или вставку или удаление этапов, без отступления от изобретения.
Все права, включая авторские права в коде, включенном в материалы настоящей заявки, принадлежат и являются собственностью заявителя. Заявитель сохраняет за собой и резервирует все права в коде, включенном в материалы настоящей заявки, и дает разрешение воспроизводить материал только в связи с воспроизведением выданного патента и ни для какой другой цели.
В то время как спецификация включает примеры, объем изобретения определяется нижеследующими пунктами формулы изобретения. Более того, в то время как спецификация была описана на языке, характерном для структурных признаков и/или методологических действий, пункты формулы изобретения не ограничиваются признаками или действиями, описанными выше. Скорее конкретные признаки и действия, описанные выше, раскрываются в качестве примера для вариантов осуществления изобретения.