- Deprecated function: Use of "static" in callables is deprecated in Drupal\user\Entity\Role::postLoad() (line 172 of core/modules/user/src/Entity/Role.php).
Drupal\user\Entity\Role::postLoad(Object, Array) (Line: 423)
Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 353)
Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 16)
Drupal\user\RoleStorage->isPermissionInRoles('access site in maintenance mode', Array) (Line: 112)
Drupal\Core\Session\UserSession->hasPermission('access site in maintenance mode') (Line: 105)
Drupal\Core\Session\AccountProxy->hasPermission('access site in maintenance mode') (Line: 83)
Drupal\redirect\RedirectChecker->canRedirect(Object) (Line: 120)
Drupal\redirect\EventSubscriber\RedirectRequestSubscriber->onKernelRequestCheckRedirect(Object, 'kernel.request', Object)
call_user_func(Array, Object, 'kernel.request', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.request') (Line: 145)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54)
Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 141)
Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104)
Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82)
Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 2318)
Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697)
Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54)
Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228)
Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 144)
Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104)
Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82)
Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 2318)
Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697)
Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54)
Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228)
Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 110)
Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82)
Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 2318)
Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697)
Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 35)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 2318)
Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697)
Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('views') (Line: 1316)
Drupal\views\Plugin\views\query\Sql->query() (Line: 1454)
Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('views_substitutions', Array) (Line: 1418)
Drupal\views\Plugin\views\query\Sql->query() (Line: 1454)
Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('views') (Line: 1316)
Drupal\views\Plugin\views\query\Sql->query(1) (Line: 1455)
Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('views_substitutions', Array) (Line: 1418)
Drupal\views\Plugin\views\query\Sql->query(1) (Line: 1455)
Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54)
Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 141)
Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104)
Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82)
Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 1876)
Drupal\views\ViewExecutable->buildTitle() (Line: 338)
Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733)
Drupal\views\ViewExecutable->attachDisplays() (Line: 1333)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54)
Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228)
Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 144)
Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104)
Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82)
Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 1876)
Drupal\views\ViewExecutable->buildTitle() (Line: 338)
Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733)
Drupal\views\ViewExecutable->attachDisplays() (Line: 1333)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54)
Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228)
Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 110)
Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82)
Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 1876)
Drupal\views\ViewExecutable->buildTitle() (Line: 338)
Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733)
Drupal\views\ViewExecutable->attachDisplays() (Line: 1333)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\views\ManyToOneHelper::$handler is deprecated in Drupal\views\ManyToOneHelper->__construct() (line 24 of core/modules/views/src/ManyToOneHelper.php).
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 35)
Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894)
Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045)
Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903)
Drupal\views\ViewExecutable->initHandlers() (Line: 1876)
Drupal\views\ViewExecutable->buildTitle() (Line: 338)
Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733)
Drupal\views\ViewExecutable->attachDisplays() (Line: 1333)
Drupal\views\ViewExecutable->build() (Line: 392)
Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1635)
Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '645b8c30-1158-40e7-9945-e0140a2c48be') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '645b8c30-1158-40e7-9945-e0140a2c48be') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '645b8c30-1158-40e7-9945-e0140a2c48be') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '645b8c30-1158-40e7-9945-e0140a2c48be') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '33a1cadb-19ae-43f7-b8e9-b440ed9bdb4a') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '33a1cadb-19ae-43f7-b8e9-b440ed9bdb4a') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '33a1cadb-19ae-43f7-b8e9-b440ed9bdb4a') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '33a1cadb-19ae-43f7-b8e9-b440ed9bdb4a') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd6c5e3db-3d74-4edc-a537-bdca340993ca') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd6c5e3db-3d74-4edc-a537-bdca340993ca') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd6c5e3db-3d74-4edc-a537-bdca340993ca') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd6c5e3db-3d74-4edc-a537-bdca340993ca') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Text Filter</strong> ofrece una herramienta de búsqueda que puede ser utilizada para filtrar otras visualizaciones de nuestros informes, funcionalidad básica que, sin embargo, no está disponible más que usando los filtros estándar de Power BI, menos cómodos.
En el siguiente ejemplo se ha asociado al <em>Text Filter</em> el campo <em>Full Name</em> que contiene el nombre completo de nuestros clientes, y se muestra debajo una tabla con datos de éstos, incluyendo su nombre:
En cuanto escribimos algún texto en el filtro y presionamos <em>Intro</em>, la tabla inferior se filtra para mostrar solo aquellos valores de <em>Full Name</em> que contienen el texto en cuestión:
La configuración de esta visualización es sumamente simple:
...apenas, el campo con el que va asociada.
A la derecha del recuadro de búsqueda se muestra in pequeño icono (representando una goma de borrar) que permite reinicializar la búsqueda.
Y no se ofrecen herramientas adicionales de configuración, es decir, no podemos controlar el tamaño del texto de la visualización, ni colores.
Práctica visualización, aunque se agradecería alguna opción adicional de personalización.', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0fc8e6e2-9db8-4474-8115-b7eca53a400b') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0fc8e6e2-9db8-4474-8115-b7eca53a400b') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0fc8e6e2-9db8-4474-8115-b7eca53a400b') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0fc8e6e2-9db8-4474-8115-b7eca53a400b') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9f58dcfb-443d-4c9f-8d26-e952871b7f42') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9f58dcfb-443d-4c9f-8d26-e952871b7f42') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9f58dcfb-443d-4c9f-8d26-e952871b7f42') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9f58dcfb-443d-4c9f-8d26-e952871b7f42') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '96de1e47-dcd9-45dd-8678-4085c71f60a3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '96de1e47-dcd9-45dd-8678-4085c71f60a3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '96de1e47-dcd9-45dd-8678-4085c71f60a3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '96de1e47-dcd9-45dd-8678-4085c71f60a3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '218506fe-9ae4-4c55-a251-ef69bbe23e33') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '218506fe-9ae4-4c55-a251-ef69bbe23e33') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '218506fe-9ae4-4c55-a251-ef69bbe23e33') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '218506fe-9ae4-4c55-a251-ef69bbe23e33') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '10150c97-3208-490e-a2bb-0b6d9dfab601') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '10150c97-3208-490e-a2bb-0b6d9dfab601') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '10150c97-3208-490e-a2bb-0b6d9dfab601') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '10150c97-3208-490e-a2bb-0b6d9dfab601') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '95545e62-e91c-4485-912a-c4ff84a4c396') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '95545e62-e91c-4485-912a-c4ff84a4c396') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '95545e62-e91c-4485-912a-c4ff84a4c396') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '95545e62-e91c-4485-912a-c4ff84a4c396') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd1f47400-fbae-427b-b1bf-f757f0ddd433') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd1f47400-fbae-427b-b1bf-f757f0ddd433') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd1f47400-fbae-427b-b1bf-f757f0ddd433') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd1f47400-fbae-427b-b1bf-f757f0ddd433') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '009423c5-209c-4150-b5ff-ef3d4d1d8379') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '009423c5-209c-4150-b5ff-ef3d4d1d8379') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '009423c5-209c-4150-b5ff-ef3d4d1d8379') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '009423c5-209c-4150-b5ff-ef3d4d1d8379') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Card Browser</strong> de Microsoft permite visualizar de forma elegante información (no solo textual) con una o dos imágenes asociadas. En la siguiente captura de pantalla, por ejemplo, se muestra información sobre los clientes de la empresa:
Obsérvese la configuración de la visualización:
Como puede apreciarse, simplemente se ha llevado el título que deseamos dar a cada tarjeta (campo <em>Title</em>, el nombre del cliente en nuestro ejemplo), la imagen asociada a cada cliente (<em>Title Image (URL)</em>) y un identificador (campo <em>Document Id</em>). En realidad la imagen ni siquiera es necesaria para visualizar las tarjetas.
Al campo <em>Preview</em> podemos llevar un campo (solo uno) que se mostrará en la parte inferior de las imágenes (al ocupar este campo la imagen ve reducida automáticamente su altura). En la imagen siguiente se ha llevado el campo <em>Description</em> de nuestra tabla de clientes a este campo <em>Preview</em>, campo que, tal y como indica su nombre, contiene una descripción del cliente:
También disponemos de un campo <em>Subtitle Fields</em> al que podemos llevar campos (uno o varios) que serán elegantemente mostrados debajo del título (campos <em>Gender</em> y <em>Age</em> indicando el sexo y la edad en el ejemplo mostrado en la siguiente imagen):
Al campo <em>MetaData Fields</em> de la visualización podemos llevar tantos campos como deseemos:
Así que introducimos el primer campo, se muestra en la parte superior de la visualización un icono:
Un clic en este icono (en los dos cuadrados de la derecha) provoca que todas las tarjetas se giren, mostrando el reverso:
En este reverso se encuentran los campos que acabamos de añadir a <em>MetaData Fields</em>. Un pequeño error en la visualización es que el ancho dedicado a las etiquetas de estos campos es fijo, y éstas no siempre se leen correctamente (obsérvese, por ejemplo, la etiqueta "<em>Household income</em>" en las tarjetas de la imagen anterior).
En el reverso también se muestra una imagen que, por defecto, es la misma que la que se muestra en anverso, aunque es personalizable (para esto es para lo que existe el campo <em>Badge (Image URL)</em>).
Como se observa en la imagen anterior, también se muestra en la parte superior del reverso el contenido de los campos <em>Title</em> y <em>Subtitle Fields</em>.
Si volvemos al anverso haciendo clic nuevamente en el icono superior de la visualización (en los dos cuadrados de la izquierda) y hacemos clic en cualquier parte de una tarjeta se abrirá una ventana inferior, mostrando la misma información que hemos visto en el reverso aunque, en este caso, solo para la tarjeta seleccionada:
Unos controles situados a derecha y a izquierda de esta ventana nos permite ir moviéndonos cómodamente por cada una de las tarjetas.
El contenido del campo <em>Content</em>, que todavía no hemos mencionado, se mostrará en la parte superior de esta ventana (no en el reverso de las tarjetas).
Al respecto de las opciones de formato, podemos ajustar el ancho y el alto de las tarjetas (lo que determina el número de columnas en función del ancho que demos a la visualización), activar o no el giro de éstas, la sombra que se ve alrededor de las tarjetas... No hay demasiadas opciones, pero tampoco resultan muy necesarias.
Muy buena visualización, no aplicable en cualquier escenario, pero sumamente útil cuando se está buscando una herramienta para mostrar información de elementos de forma ordenada y elegante.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a171b79b-e030-4285-9afd-adba9a3906f0') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a171b79b-e030-4285-9afd-adba9a3906f0') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a171b79b-e030-4285-9afd-adba9a3906f0') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a171b79b-e030-4285-9afd-adba9a3906f0') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e13bd98f-fdf1-486d-9a56-d5c74220d5b1') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e13bd98f-fdf1-486d-9a56-d5c74220d5b1') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e13bd98f-fdf1-486d-9a56-d5c74220d5b1') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e13bd98f-fdf1-486d-9a56-d5c74220d5b1') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f399d636-72e4-4215-90e7-d63ec865ed0b') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f399d636-72e4-4215-90e7-d63ec865ed0b') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f399d636-72e4-4215-90e7-d63ec865ed0b') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f399d636-72e4-4215-90e7-d63ec865ed0b') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93d608ce-4d02-4a17-8d33-112bf6086d0e') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93d608ce-4d02-4a17-8d33-112bf6086d0e') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93d608ce-4d02-4a17-8d33-112bf6086d0e') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93d608ce-4d02-4a17-8d33-112bf6086d0e') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd7751cdd-53d3-440a-8841-a253806dfed3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd7751cdd-53d3-440a-8841-a253806dfed3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd7751cdd-53d3-440a-8841-a253806dfed3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd7751cdd-53d3-440a-8841-a253806dfed3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '572662e6-95cf-49bc-a569-479b69a7f48f') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '572662e6-95cf-49bc-a569-479b69a7f48f') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '572662e6-95cf-49bc-a569-479b69a7f48f') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '572662e6-95cf-49bc-a569-479b69a7f48f') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f52fbeb1-13f4-48f7-a60e-87999b1f9e4a') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f52fbeb1-13f4-48f7-a60e-87999b1f9e4a') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f52fbeb1-13f4-48f7-a60e-87999b1f9e4a') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'f52fbeb1-13f4-48f7-a60e-87999b1f9e4a') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5bd6aa93-e19a-4c60-a7da-325e2d1a77be') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5bd6aa93-e19a-4c60-a7da-325e2d1a77be') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5bd6aa93-e19a-4c60-a7da-325e2d1a77be') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5bd6aa93-e19a-4c60-a7da-325e2d1a77be') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Dot Plot by MAQ Software</strong> nos permite crear gráficos que representan valores numéricos asociados a una variable categórica a lo largo del eje vertical. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Country</em> de nuestro modelo de datos al campo <em>Axis</em> de la visualización, y la medida <em>Sales</em> se ha llevado al campo <em>Value</em> de la visualización. El resultado es una representación de las ventas por país. Obsérvese que no se muestran las etiquetas asociadas a cada punto, siendo necesario mover el cursor encima de las burbujas para ver esta información:
La configuración de la visualización es la siguiente:
Es decir, el campo <em>Axis</em> hace referencia al eje vertical en el que se van a representar los valores numéricos asociados a cada uno de los valores de la variable categórica (<em>Country</em>, en el ejemplo). Si movemos el cursor encima de una de las burbujas, se muestra la información asociada:
Sin duda, resultaría de agradecer la opción de mostrar todos estos valores en pantalla (lo que no es posible).
El campo <em>Axis Category I</em> hace referencia al eje X, y permite desagregar nuestros datos según una nueva dimensión. Si, por ejemplo, llevamos el campo <em>Category</em> (que, en nuestro dataset, indica la categoría de los productos vendidos) a este campo de la visualización, obtenemos la siguiente imagen:
Si, en lugar de un simple campo, llevamos una jerarquía, será posible navegar por ella haciendo de las herramientas mostradas en la parte superior de la visualización (herramientas comunes en Power BI a este tipo de estructuras):
Podemos hacer uso del campo <em>Legend</em> en la visualización para desagregar nuestros datos según otra dimensión. Por ejemplo, en la siguiente imagen se ha llevado el campo <em>Gender</em> de nuestros datos (que indica el género del comprador) a este campo de la visualización:
Como puede verse, se muestra en colores diferentes las burbujas correspondientes a cada género. Desafortunadamente no es posible llevar a este campo alguno que ya estemos usando en la visualización. Es decir, no podríamos llevar el campo <em>Country</em>, por ejemplo, para poder distinguir qué burbujas se corresponden con cada país.
En <em>Formato > Jitter effect</em> podemos habilitar el "temblequeo" de las burbujas, de forma que se muestren en posiciones "próximas" al valor que representan, pero no exactamente encima, lo que nos permite distinguir unas burbujas de otras (véase ejemplo en la siguiente imagen).
El campo de la visualización <em>Bubble size</em> nos permite controlar el tamaño de las burbujas. Adicionalmente, en <em>Formato > Bubbles</em> podemos controlar el radio mínimo y máximo de éstas, así como su grado de transparencia:
El campo de la visualización <em>Axis Category II</em> nos permite replicar la gráfica segmentando los datos según una nueva dimensión (lo que, en otros entornos, se denomina <em>facets</em>). Así, si en la visualización mostrada en la imagen anterior movemos el campo <em>Gender</em> (que teníamos en el campo <em>Legend</em> de la visualización) a <em>Axis Category II</em>, obtenemos el siguiente resultado:
La visualización tiene muchas opciones adicionales: es posible mostrar las gráficas vistas verticalmente (opción por defecto) u horizontalmente, dar formato a los ejes, etc. Probablemente las mayores limitaciones vienen a la hora de aplicar formato a las burbujas (por ejemplo, para permitir la identificación de éstas según el valor que tome el campo que hayamos llevado a <em>Axis</em>), así como la imposibilidad de mostrar las etiquetas asociadas a las burbujas. La mayor utilidad de <em>Dot Plot by MAQ Software</em> es, probablemente, la identificación de outliers en nuestros datos.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e9aedf62-76f8-42f7-b9db-8a0d79e33952') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e9aedf62-76f8-42f7-b9db-8a0d79e33952') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e9aedf62-76f8-42f7-b9db-8a0d79e33952') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e9aedf62-76f8-42f7-b9db-8a0d79e33952') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b08091f4-5e8d-47cc-b218-4c4555053917') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b08091f4-5e8d-47cc-b218-4c4555053917') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b08091f4-5e8d-47cc-b218-4c4555053917') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b08091f4-5e8d-47cc-b218-4c4555053917') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3bc0a51-d857-4db0-9cc0-483d0705d6b9') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3bc0a51-d857-4db0-9cc0-483d0705d6b9') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3bc0a51-d857-4db0-9cc0-483d0705d6b9') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3bc0a51-d857-4db0-9cc0-483d0705d6b9') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0928ee1d-088c-453e-b625-00d7d6983847') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0928ee1d-088c-453e-b625-00d7d6983847') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0928ee1d-088c-453e-b625-00d7d6983847') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0928ee1d-088c-453e-b625-00d7d6983847') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e4ee7bf4-230a-4616-8b7d-0dd96270db34') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e4ee7bf4-230a-4616-8b7d-0dd96270db34') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e4ee7bf4-230a-4616-8b7d-0dd96270db34') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e4ee7bf4-230a-4616-8b7d-0dd96270db34') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Mekko Chart</strong> soluciona uno de los problemas de los <em>tree maps</em> cuando se usan para mostrar una categoría segmentada por otra dimensión. Por ejemplo, obsérvese el siguiente <em>tree map</em> que muestra las ventas realizadas en función del estado civil del comprador en el que cada uno de estos bloques se divide a su vez según el país de origen del comprador:
Las áreas correspondientes a cada estado civil, si bien se muestran como rectángulos (lo que siempre hace más cómoda su interpretación que si se utilizasen áreas circulares, por ejemplo), éstos no tienen ni una altura común ni un ancho común, lo que dificulta su comparación: ¿Cuántas veces se han vendido más productos a la categoría "<em>Other</em>" que a la categoría "<em>Single</em>"? ¿2? ¿1.5? Y la comparación de las ventas en un país tampoco resulta evidente. Fijémonos, por ejemplo, en las ventas a divorciados en España y a viudos en el mismo país: parecen semejantes, pero tal vez nos gustaría ser capaces de identificar visualmente cuál de las dos es mayor, por pequeña que sea esta cantidad. Esto se soluciona parcialmente con una gráfica de barras 100% apiladas:
Ahora resulta evidente que las ventas en España a viudos es un par de puntos superior a las ventas a divorciados. Pero hemos perdido la posibilidad de comparar las ventas globales por estado civil (pues todas las columnas se muestran con el mismo ancho y la misma altura).
¿No podrían crearse estas barras verticales de forma que su ancho fuese proporcional a la cifra total representada? Esto unificaría la funcionalidad del <em>tree map</em> y del gráfico de barras 100% apiladas... Pues es esto exactamente lo que hace el <em>Mekko Chart</em>. Si transformamos cualquiera de las anteriores visualizaciones en otra de tipo <em>Mekko Chart</em>, el resultado es el siguiente:
La interpretación ahora es más sencilla, permitiéndonos comparar la métrica en análisis basándonos solo en el ancho de cada barra.
La configuración de esta gráfica es la siguiente:
Se ha llevado al campo <em>Categoría</em> la dimensión principal que va a definir las columnas principales (el estado civil de nuestro cliente, en este ejemplo), al campo <em>Series</em> el criterio que va a dividir cada columna (el país en nuestro ejemplo), al campo <em>Eje Y</em> la métrica a representar (ventas), y al campo <em>Ancho de eje</em> el criterio que va a definir el ancho de las columnas. Esto nos permitiría mostrar dos métricas simultáneamente: la principal (<em>Eje Y</em>) que determinaría la división de cada columna, y la secundaria (<em>Ancho del eje</em>) que determinaría el ancho de cada columna. En nuestro ejemplo ambas métricas son la misma: las ventas.
Podemos modificar los colores de las áreas en <em>Formato > Colores de datos</em>, y mostrar las etiquetas de los datos en <em>Formato > Etiquetas de datos</em>. Solo se puede mostrar el porcentaje del valor numérico representado, no la cifra en sí. Tampoco se pueden mostrar los valores de las dimensiones categóricas siendo representadas (lo que se delega en la leyenda y en las etiquetas del eje horizontal). Para visualizar la cantidad representada en cada rectángulo es necesario mover el cursor por encima de la visualización (véase siguiente imagen).
No es posible modificar la posición de la leyenda, aunque sí el orden en el que se muestra cada elemento en ésta (ascendente o descendente). También en las barras verticales es posible mostrar las divisiones en el mismo orden en todas las barras o en función del valor representado en cada división (de mayor a menor o viceversa):
En resumen, aun cuando se echan de menos algunas opciones adicionales de configuración, resulta una interesante mejora del clásico tree map y de las gráficas de columnas 100% apiladas.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'bd900886-262b-4ca3-b862-5c87f52a9c3e') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'bd900886-262b-4ca3-b862-5c87f52a9c3e') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'bd900886-262b-4ca3-b862-5c87f52a9c3e') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'bd900886-262b-4ca3-b862-5c87f52a9c3e') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '31df7109-8fc4-4038-83c7-349de54cb47d') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '31df7109-8fc4-4038-83c7-349de54cb47d') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '31df7109-8fc4-4038-83c7-349de54cb47d') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '31df7109-8fc4-4038-83c7-349de54cb47d') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7604dbf2-693c-476c-b6ea-438b86ef063c') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7604dbf2-693c-476c-b6ea-438b86ef063c') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7604dbf2-693c-476c-b6ea-438b86ef063c') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7604dbf2-693c-476c-b6ea-438b86ef063c') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b8264e8-923b-4c7d-a164-93b8ff4111cf') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b8264e8-923b-4c7d-a164-93b8ff4111cf') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b8264e8-923b-4c7d-a164-93b8ff4111cf') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b8264e8-923b-4c7d-a164-93b8ff4111cf') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'eabf2e9b-f368-4f87-8c3d-13e808015741') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'eabf2e9b-f368-4f87-8c3d-13e808015741') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'eabf2e9b-f368-4f87-8c3d-13e808015741') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'eabf2e9b-f368-4f87-8c3d-13e808015741') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '1abffc7e-f334-40e8-a544-a1fe220005ec') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '1abffc7e-f334-40e8-a544-a1fe220005ec') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '1abffc7e-f334-40e8-a544-a1fe220005ec') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '1abffc7e-f334-40e8-a544-a1fe220005ec') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15b5fa34-f658-4bf4-b606-f46f07c067be') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15b5fa34-f658-4bf4-b606-f46f07c067be') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15b5fa34-f658-4bf4-b606-f46f07c067be') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15b5fa34-f658-4bf4-b606-f46f07c067be') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '570de981-ee2d-483d-a6a2-7d834df7db92') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '570de981-ee2d-483d-a6a2-7d834df7db92') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '570de981-ee2d-483d-a6a2-7d834df7db92') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '570de981-ee2d-483d-a6a2-7d834df7db92') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5e9c41a9-3be4-471e-80d0-b6c5382d4b61') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5e9c41a9-3be4-471e-80d0-b6c5382d4b61') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5e9c41a9-3be4-471e-80d0-b6c5382d4b61') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5e9c41a9-3be4-471e-80d0-b6c5382d4b61') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b79c956e-72dc-42df-a014-df3574f04fd3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b79c956e-72dc-42df-a014-df3574f04fd3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b79c956e-72dc-42df-a014-df3574f04fd3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b79c956e-72dc-42df-a014-df3574f04fd3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b63bd78-86e5-415a-9464-0aee00ada63c') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b63bd78-86e5-415a-9464-0aee00ada63c') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b63bd78-86e5-415a-9464-0aee00ada63c') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5b63bd78-86e5-415a-9464-0aee00ada63c') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Chiclet Slicer</strong> es una versión muy versátil de la clásica segmentación con orientación horizontal. Su configuración aparentemente no es mucho más compleja: en el siguiente ejemplo se ha arrastrado una instancia de esta visualización al lienzo y se ha llevado el año de la tabla calendario hasta el campo <em>Categoría</em> de la visualización:
Ésta es la configuración de la visualización:
Ya de entrada es posible ver en la visualización una primera diferencia con la segmentación clásica: los elementos se disponen en tres columnas. El número de éstas es configurable en <em>Formato > General > Columnas</em> (de hecho es posible configurar el número de filas y/o de columnas). Pero no solo eso, los valores (los años en este ejemplo) se muestran verticalmente (debajo del 2015 está el 2016, en la segunda columna encontramos el 2017 y el 2018...), pero podemos configurar también este orden en <em>Formato > General > Orientación</em> para que se muestren horizontalmente:
Por defecto se permite la selección múltiple de los elementos, pero este comportamiento es fácilmente modificable en <em>Formato > General > Selección múltiple</em>. También es posible configurar la visualización de forma que necesariamente tenga que existir un elemento seleccionado en todo momento.
Un aspecto interesante es que el slicer soporta el marcado cruzado, lo que significa que cuando se realiza un filtrado en otra visualización, los elementos del slicer reaccionan de forma adecuada. Esta reacción puede configurarse de forma que los elementos no seleccionados se oculten, se muestren en la parte inferior o adapten su formato. Por defecto está activada esta última opción, pero el formato de los elementos desactivados es el mismo que el de los que están activados, de forma que no es apreciable el cambio. Sin embargo, para que el marcado cruzado funcione hay que añadir un campo (relacionado con las tablas implicadas) al campo <em>Valores</em> de la visualización.
Por ejemplo, en la siguiente imagen podemos ver un slicer con los nombres de varios fabricantes de coches (campo llamado <em>Name</em>) en el que no hemos llevado ningún campo a <em>Valores</em>, y tenemos también un listado de dichos fabricantes con sus ventas. También hemos seleccionado uno de los nombres en esta última visualización ("Audi"):
Vemos como, efectivamente, el slicer no parece mostrar un aspecto diferente al que podríamos esperar si no se hubiese seleccionado ningún fabricante. Pero si arrastramos el campo <em>Name</em> también al campo <em>Valores</em> de la visualización (campo que se agrega extrayendo la "primera fecha" por defecto), el slicer se muestra muy diferente:
Podemos configurar el aspecto de los elementos no seleccionados en <em>Formato > Chiclets > Color deshabilitado</em>. Así, si seleccionamos un color amarillo el slicer muestra el siguiente aspecto:
En realidad es posible modificar los colores de varios elementos en función del estado en el que se encuentren.
El poder seleccionar el número de columnas o de filas nos permite crear segmentaciones de muy diferente aspecto:
Otra opción sumamente interesante es la posibilidad de llevar a cada elemento una imagen. Por ejemplo, en la siguiente visualización se ha llevado un campo conteniendo las URLs de los logos de los fabricantes al campo <em>Imagen</em> de la visualización:
El tamaño con el que se muestran las imágenes en los elementos es configurable (<em>Formato > Imágenes > División de la imagen</em>).
Al igual que antes, si seleccionamos el nombre de uno de los fabricantes en otra visualización, el slicer se modifica para resaltar el o los elementos seleccionados:
Y, por supuesto, aunque no se ha comentado hasta ahora, es obvio que la selección de uno de los elementos va a filtrar adecuadamente el resto de visualizaciones del informe. Si, por ejemplo, creamos una medida para que sume el campo <em>Car sales</em> (que contiene las ventas de cada fabricante, supongamos que en millones de euros) y la arrastramos al lienzo con formato de etiqueta, el resultado es el siguiente:
Ahora, si seleccionamos uno de los fabricantes en nuestro slicer, la etiqueta se filtra de la forma que cabría esperar:
Puede apreciarse que el elemento o los elementos seleccionados se muestran con un aspecto destacado (también configurable).
En general, podemos decir que se trata de una visualización que mejora notablemente la funcionalidad de las visualizaciones semejantes integradas en Power BI.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110)
__TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Return type of Drupal\google_analytics\Component\Render\GoogleAnalyticsJavaScriptSnippet::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 10 of modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php).
include('/var/www/vhosts/interactivechaos.ovh/httpdocs/modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php') (Line: 578)
Composer\Autoload\ClassLoader::Composer\Autoload\{closure}('/var/www/vhosts/interactivechaos.ovh/httpdocs/modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php') (Line: 432)
Composer\Autoload\ClassLoader->loadClass('Drupal\google_analytics\Component\Render\GoogleAnalyticsJavaScriptSnippet') (Line: 372)
google_analytics_page_attachments(Array) (Line: 313)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}(Object, 'google_analytics') (Line: 405)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('page_attachments', Object) (Line: 310)
Drupal\Core\Render\MainContent\HtmlRenderer->invokePageAttachmentHooks(Array) (Line: 288)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Use of "static" in callables is deprecated in Drupal\user\Entity\Role::postLoad() (line 172 of core/modules/user/src/Entity/Role.php).
Drupal\user\Entity\Role::postLoad(Object, Array) (Line: 423)
Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 353)
Drupal\Core\Entity\EntityStorageBase->loadMultiple() (Line: 126)
eu_cookie_compliance_page_attachments(Array) (Line: 313)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}(Object, 'eu_cookie_compliance') (Line: 405)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('page_attachments', Object) (Line: 310)
Drupal\Core\Render\MainContent\HtmlRenderer->invokePageAttachmentHooks(Array) (Line: 288)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)