# Създаване на смислени визуализации |![ Скетч от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/13-MeaningfulViz.png)| |:---:| | Смислени визуализации - _Скетч от [@nitya](https://twitter.com/nitya)_ | > "Ако измъчвате данните достатъчно дълго, те ще признаят всичко" -- [Роналд Коуз](https://en.wikiquote.org/wiki/Ronald_Coase) Едно от основните умения на специалиста по данни е способността да създава смислена визуализация на данни, която помага да се отговори на въпросите, които може да имате. Преди да визуализирате данните си, трябва да се уверите, че те са почистени и подготвени, както направихте в предишните уроци. След това можете да започнете да решавате как най-добре да представите данните. В този урок ще разгледате: 1. Как да изберете правилния тип диаграма 2. Как да избегнете подвеждащи диаграми 3. Как да работите с цветове 4. Как да стилизирате диаграмите си за четливост 5. Как да създавате анимирани или 3D диаграми 6. Как да създавате креативни визуализации ## [Тест преди урока](https://ff-quizzes.netlify.app/en/ds/quiz/24) ## Изберете правилния тип диаграма В предишни уроци експериментирахте със създаването на различни интересни визуализации на данни, използвайки Matplotlib и Seaborn за диаграми. По принцип можете да изберете [правилния тип диаграма](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) за въпроса, който задавате, като използвате тази таблица: | Трябва да: | Трябва да използвате: | | -------------------------- | ------------------------------- | | Показвате тенденции във времето | Линия | | Сравнявате категории | Лента, Кръгова диаграма | | Сравнявате общи стойности | Кръгова диаграма, Слоеста лента | | Показвате връзки | Разпръсната, Линия, Фасет, Двойна линия | | Показвате разпределения | Разпръсната, Хистограма, Кутия | | Показвате пропорции | Кръгова диаграма, Донът, Вафла | > ✅ В зависимост от състава на вашите данни, може да се наложи да ги преобразувате от текстови в числови, за да поддържат даден тип диаграма. ## Избягвайте подвеждането Дори ако специалистът по данни внимателно избере правилната диаграма за правилните данни, има много начини, по които данните могат да бъдат представени, за да докажат дадена точка, често за сметка на самите данни. Има много примери за подвеждащи диаграми и инфографики! [![Как диаграмите лъжат от Алберто Кайро](../../../../3-Data-Visualization/13-meaningful-visualizations/images/tornado.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "Как диаграмите лъжат") > 🎥 Кликнете върху изображението по-горе за конференция относно подвеждащи диаграми Тази диаграма обръща оста X, за да покаже обратното на истината, базирано на дата: ![лоша диаграма 1](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-1.png) [Тази диаграма](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) е още по-подвеждаща, тъй като окото се насочва към дясната страна, за да заключи, че с времето случаите на COVID са намалели в различните окръзи. Всъщност, ако погледнете внимателно датите, ще откриете, че те са пренаредени, за да създадат този подвеждащ низходящ тренд. ![лоша диаграма 2](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-2.jpg) Този известен пример използва цветове И обърната ос Y, за да заблуди: вместо да заключите, че смъртните случаи от огнестрелни оръжия са се увеличили след приемането на законодателство, благоприятно за оръжията, окото е заблудено да мисли, че обратното е вярно: ![лоша диаграма 3](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-3.jpg) Тази странна диаграма показва как пропорциите могат да бъдат манипулирани, до комичен ефект: ![лоша диаграма 4](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-4.jpg) Сравняването на несравними неща е още един съмнителен трик. Има [чудесен уебсайт](https://tylervigen.com/spurious-correlations), посветен на 'фалшиви корелации', показващ 'факти', които корелират неща като процента на разводите в Мейн и консумацията на маргарин. Група в Reddit също събира [грозни примери](https://www.reddit.com/r/dataisugly/top/?t=all) за използване на данни. Важно е да разберете колко лесно окото може да бъде заблудено от подвеждащи диаграми. Дори ако намерението на специалиста по данни е добро, изборът на неподходящ тип диаграма, като кръгова диаграма с твърде много категории, може да бъде подвеждащ. ## Цветове Видяхте в диаграмата за 'насилие с оръжия във Флорида' как цветът може да добави допълнителен слой смисъл към диаграмите, особено тези, които не са създадени с библиотеки като Matplotlib и Seaborn, които идват с различни проверени цветови библиотеки и палитри. Ако създавате диаграма ръчно, направете малко проучване на [теорията на цветовете](https://colormatters.com/color-and-design/basic-color-theory). > ✅ Бъдете наясно, когато проектирате диаграми, че достъпността е важен аспект на визуализацията. Някои от вашите потребители може да са цветно слепи - дали вашата диаграма се показва добре за потребители с визуални увреждания? Бъдете внимателни при избора на цветове за вашата диаграма, тъй като цветът може да предаде значение, което не сте възнамерявали. 'Розовите дами' в диаграмата за 'височина' по-горе предават ясно 'женствено' значение, което добавя към странността на самата диаграма. Докато [значението на цветовете](https://colormatters.com/color-symbolism/the-meanings-of-colors) може да бъде различно в различни части на света и има тенденция да се променя според нюанса им, общо казано, значенията на цветовете включват: | Цвят | Значение | | ------ | ------------------- | | червен | сила | | син | доверие, лоялност | | жълт | щастие, предпазливост| | зелен | екология, късмет, завист | | лилав | щастие | | оранжев| жизненост | Ако ви е възложено да създадете диаграма с персонализирани цветове, уверете се, че вашите диаграми са както достъпни, така и че цветът, който избирате, съответства на значението, което се опитвате да предадете. ## Стилизиране на диаграмите за четливост Диаграмите не са смислени, ако не са четливи! Отделете момент, за да обмислите стилизирането на ширината и височината на вашата диаграма, така че да се мащабира добре с вашите данни. Ако трябва да покажете една променлива (като всички 50 щата), покажете ги вертикално на оста Y, ако е възможно, за да избегнете диаграма с хоризонтално превъртане. Надпишете осите си, предоставете легенда, ако е необходимо, и предложете подсказки за по-добро разбиране на данните. Ако вашите данни са текстови и подробни на оста X, можете да наклоните текста за по-добра четливост. [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) предлага 3D графики, ако вашите данни го поддържат. Сложни визуализации на данни могат да бъдат създадени с `mpl_toolkits.mplot3d`. ![3D диаграми](../../../../3-Data-Visualization/13-meaningful-visualizations/images/3d.png) ## Анимация и 3D диаграми Някои от най-добрите визуализации на данни днес са анимирани. Шърли Ву има невероятни примери, направени с D3, като '[цветя от филми](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', където всяко цвете е визуализация на филм. Друг пример за Guardian е 'извозени', интерактивно преживяване, комбиниращо визуализации с Greensock и D3 плюс формат на статия с разказване чрез превъртане, за да покаже как Ню Йорк се справя с проблема с бездомните, като ги извозва извън града. ![извозване](../../../../3-Data-Visualization/13-meaningful-visualizations/images/busing.png) > "Извозени: Как Америка премества своите бездомни" от [Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Визуализации от Надие Бремер и Шърли Ву Докато този урок не е достатъчен, за да навлезе в дълбочина и да ви научи на тези мощни библиотеки за визуализация, опитайте да използвате D3 в приложение с Vue.js, използвайки библиотека за визуализация на книгата "Опасни връзки" като анимирана социална мрежа. > "Опасни връзки" е епистоларен роман, или роман, представен като серия от писма. Написан през 1782 г. от Шодерло дьо Лакло, той разказва историята за жестоките, морално банкрутирали социални маневри на двама дуелиращи се протагонисти от френската аристокрация в края на 18-ти век, виконт дьо Валмон и маркиза дьо Мертьой. И двамата срещат своя край, но не без да нанесат значителни социални щети. Романът се развива като серия от писма, написани до различни хора в техните кръгове, планиращи отмъщение или просто създаващи проблеми. Създайте визуализация на тези писма, за да откриете основните фигури в разказа, визуално. Ще завършите уеб приложение, което ще показва анимиран изглед на тази социална мрежа. То използва библиотека, създадена за [визуализация на мрежа](https://github.com/emiliorizzo/vue-d3-network) с Vue.js и D3. Когато приложението работи, можете да местите възлите на екрана, за да пренареждате данните. ![връзки](../../../../3-Data-Visualization/13-meaningful-visualizations/images/liaisons.png) ## Проект: Създайте диаграма за показване на мрежа с D3.js > Тази папка на урока включва папка `solution`, където можете да намерите завършения проект за справка. 1. Следвайте инструкциите в README.md файла в корена на папката `starter`. Уверете се, че имате NPM и Node.js, работещи на вашата машина, преди да инсталирате зависимостите на проекта. 2. Отворете папката `starter/src`. Ще откриете папка `assets`, където можете да намерите .json файл с всички писма от романа, номерирани, с анотации 'до' и 'от'. 3. Завършете кода в `components/Nodes.vue`, за да активирате визуализацията. Потърсете метода, наречен `createLinks()` и добавете следния вложен цикъл. Циклирайте през .json обекта, за да уловите данните 'до' и 'от' за писмата и изградете обекта `links`, така че библиотеката за визуализация да може да го използва: ```javascript //loop through letters let f = 0; let t = 0; for (var i = 0; i < letters.length; i++) { for (var j = 0; j < characters.length; j++) { if (characters[j] == letters[i].from) { f = j; } if (characters[j] == letters[i].to) { t = j; } } this.links.push({ sid: f, tid: t }); } ``` Стартирайте приложението си от терминала (npm run serve) и се насладете на визуализацията! ## 🚀 Предизвикателство Направете обиколка из интернет, за да откриете подвеждащи визуализации. Как авторът заблуждава потребителя и дали е умишлено? Опитайте да коригирате визуализациите, за да покажете как трябва да изглеждат. ## [Тест след урока](https://ff-quizzes.netlify.app/en/ds/quiz/25) ## Преглед и самостоятелно обучение Ето някои статии за четене относно подвеждащи визуализации на данни: https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ Разгледайте тези интересни визуализации за исторически активи и артефакти: https://handbook.pubpub.org/ Прегледайте тази статия за това как анимацията може да подобри вашите визуализации: https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 ## Задача [Създайте своя собствена персонализирана визуализация](assignment.md) --- **Отказ от отговорност**: Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.