做事写文章,学会一步一步拆建,从整体到局部,还是从局部到整体都行。

达到目的一共分为几大步骤,每一步又分为哪几个小步骤,把小步骤都完成好了,这样就达到自己的目的了

制图也是这样一个过程,条理清晰,一步一步做就行了,编程部分就安理论一步一步来,现在都有写好的代码,一个图最多一两天时间就ok了,很简单,不要害怕。

如果你看了这篇文章,还不懂数据可视化制图,请私聊我

图表绘制

  • 1 引言
    • 1.1 绘图的5种工具
      • 1.1.1 R语言的ggplot
      • 1.1.2 Python
      • 1.1.3 办公软件
      • 1.1.4 ps
      • 1.1.5 一些直接现成的网站
    • 1.2 绘图目的
  • 2 制图步骤
    • 2.1 拥有的数据
    • 2.2 想表达什么数据信息
    • 2.3 选择数据可视化方法
      • 2.3.1 选择可视化工具
      • 2.3.2 图表类型
      • 2.3.3 图表的整体设计
      • 2.3.4 坐标系选择
      • 2.3.5 其它琐碎
      • 2.3.6 颜色主题
        • 2.3.6.1 3种色彩表示
        • 2.3.6.2 暖色和冷色
        • 2.3.6.3 颜色搭配
        • 2.3.6.4 matplotlib 颜色搭配
    • 2.4 从图表中获得的数据信息
  • 3 图表类型大全
  • 4 绘图技巧
    • 4.1 高维和多变量
    • 4.2 python地图绘制
  • 5 学习路径
  • 6 绘制峦峰图
  • 7 气泡图,方块图,热力图
  • 8 网页在线图标生成工具
  • 9 地理数据绘图
  • 10 参考

先上图,看效果



和弦图(http://antv-2018.alipay.com/zh-cn/vis/chart/chord.html)

热力图

迁移地图(https://www.zhihu.com/question/279406121/answer/410684539)

桑葚图(https://www.zhihu.com/question/45502919)

1 引言

1.1 绘图的5种工具

下面一共包括5种方法,想要实现自由制图,,掌握python或者R语言中的一种,再掌握ps

1.1.1 R语言的ggplot

1.1.2 Python

(1)matplotlib
(2)Seaborn
(3)plotnine

1.1.3 办公软件

(1)excel
(2)wps

1.1.4 ps

只能说是P图吧,根据数据制作图表不合适

1.1.5 一些直接现成的网站

这些网站已经生成了很多好看的图,只需要对模板修改就可以了
https://blog.csdn.net/zw0pi8g5c1x/article/details/79308269

1.2 绘图目的

(1)展示数据,比文字的展示力更强
(2)揭示数据之间的联系,本质和规律,但从表格中看不出两者的关系。

2 制图步骤

下面的4个过程就是Nathan Yan总结的数据可视化的4个步骤,想要得到完美的图,就是在下面4个过程进行思索,和写论文相似。

2.1 拥有的数据

自己拥有哪些数据

2.2 想表达什么数据信息

两者的关系,趋势变化,比较?

2.3 选择数据可视化方法

可以表示维度的有,x,y,z,大小(长、半径、周长、面积),颜色,形状,纹理,前5个比较常用

可以表示:
(1)y和多个x的关系,1对多,多对1,
(2)y1、y2、y3和多个x的关系等;多对多。

也就是要选择使用哪一种图表,首先从下面的6种类型看,从每种类型选择相应的图表,
(1)但是同样一种图表可以表示不同类型的数据,比如热力图可以表示数据的关系,同样也可以表示两种类别的比较,比如相差多少。比如柱状图可以表示两个类别的比较,也可以表示随时间的变化,时间序列型数据。
(2)另外类别比较数据,也可以把问题转换为数据关系型数据,就是数据的关系可以变化,不要太死心眼了。比如变量1和变量2的数值对比,本来是类别比较型,可以两种数据相减,变成数据关系型数据。

几种类型:
(1)类别比较
(2)数据关系
(3)数据分布
(4)时间序列
(5)局部整体
(6)地理空间

2.3.1 选择可视化工具

python或R

2.3.2 图表类型

选择哪一种或者哪几种图表

2.3.3 图表的整体设计

一共包括几张图,也就是几部分,大图和子图等

2.3.4 坐标系选择

(1)直角坐标系
(2)极坐标系
(3)地理坐标系

2.3.5 其它琐碎

(1)点、线样式、宽度、颜色
(2)文字
(3)坐标轴和刻度
(4)图例
(5)图名
(6)网格
(7)间距
(8)背景颜色等

2.3.6 颜色主题

颜色具有三个特性,即色相,明度和饱和度。颜色的这三个特性及其相互关系可以用三度空间的颜色立体来说明。

颜色大全
https://www.5tu.cn/colors/yansezhongwenming.html

2.3.6.1 3种色彩表示

(1)RGB颜色
(2)HSL或HSV
(3) LUV

2.3.6.2 暖色和冷色

暖色系
黄色、红色、橙色、粉红色、棕色。
冷色系
蓝色、绿色、紫色。
中色系
黑色、白色、灰色。

2.3.6.3 颜色搭配

根据色轮进行颜色搭配,或者从配色网上找人家搭配好的颜色

单色搭配
互补色:色轮上的对称颜色
多色搭配

2.3.6.4 matplotlib 颜色搭配

(1)https://blog.csdn.net/weixin_39580795/article/details/102622004
(2)https://matplotlib.org/stable/tutorials/colors/colormaps.html
(3)https://mp.weixin.qq.com/s?__biz=MzUwOTg0MjczNw==&mid=2247484329&idx=1&sn=20ec36f7f5077221671b32d47c3412c8&chksm=f90d47f7ce7acee11449c5584a11a020cf05c27f7a60b9357bbdc35181cc7e8420c594d09fc5&scene=158#rd

2.4 从图表中获得的数据信息

进行结果总结,预期是什么,和预期是否一致,和别人的研究结果是否一致。

3 图表类型大全

https://wenku.baidu.com/view/ff15e667aa114431b90d6c85ec3a87c240288ac6.html





4 绘图技巧

**一个小技巧,**可以在某一属性再加颜色变化,比如大小上,再添加颜色,这两种都表示同一属性,这样做出的图更好看,就是又大且颜色深的数值越大。不要颜色也能反映数据变化,加了颜色后更震撼了。
**另一个小技巧,**背景加上颜色


比如上面的圆环图,不加颜色也可以表示比例大小,加了颜色以后就更好看了。

4.1 高维和多变量

高维指数据具有多个独立属性
多变量数据指数据具有多个相关属性
实际上用起来x,y,z,大小颜色等既可以表示高纬度,也可以表示多变量。所以一般不用刻意区分高维和多变量,实际问题实际分析。

4.2 python地图绘制

python使用GeoPandas读取shp格式的地图

5 学习路径

(1)把张杰老师的数据可视化之美看了
(2)B站上学ps的相关课程资料
(3)掌握一些经典案例和查阅配色网站
百度的颜色定义:
https://baike.baidu.com/item/%E9%A2%9C%E8%89%B2/5014?fr=aladdin
Matplotlib可视化最有价值的50个图表(附完整Python源代码)
https://www.jiqizhixin.com/articles/2019-01-15-11
好好学一个月完全就是数据可视化大师

6 绘制峦峰图


#  https://matplotlib.org/matplotblog/posts/create-ridgeplots-in-matplotlib/import pandas as pd
import numpy as np
from sklearn.neighbors import KernelDensityimport matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.gridspec as grid_specdata = pd.read_csv(r"H:\01HTutorWork\1长江经济带\1月25号长江经济带地理探测器\4论文\1论文图片\风险探测\风险探测转置.csv")colors = ['#0000ff', '#3300cc', '#660099', '#990066', '#cc0033', '#ff0000', '#3300cc', '#660099']#colors = ['#6495ED', '#4169E1', '#4682B4', '#0000CD', '#00008B', '#A52A2A', '#CD5C5C', '#A0522D']
#colors = ['#3333CC', '#99CCFF', '#66FF66', '#6666CC', '#333399', '#CD5C5C', '#FF9966', '#CC6633']
colors = ['#3333CC', '#99CCFF', '#339999', '#6666CC', '#333399', '#FF9966','#CD5C5C', '#cc0033',]names = ["AWS","SH","ARH","HT","AR","PD","NDVI","DEM"]# 得到6行1列的子图
gs = (grid_spec.GridSpec(8,1))# 图像的宽高
fig = plt.figure(figsize=(12,8))# 建一个空列表
ax_objs = []for i in range(8):# # 创建新的子图ax_objs.append(fig.add_subplot(gs[i:i + 1, 0:]))x  = data.Gradey = data[names[i]]# 使用颜色进行填充空白ax_objs[-1].fill_between(x, y, color=colors[i])# 设置x标签,只有最后一个有if i == 7:ax_objs[-1].set_xlabel("Grade", fontsize=16,fontweight="bold")else:ax_objs[-1].set_xticklabels([])# 设置x轴,y轴的范围ax_objs[-1].set_xlim(0, 4)if i in [0,5,6]:ax_objs[-1].set_ylim(0, 0.2)# 设置左边的类型标签ax_objs[-1].text(-0.15, 0.08, names[i], fontweight="bold", fontsize=14, ha="right")else:ax_objs[-1].set_ylim(0, 0.1)ax_objs[-1].text(-0.15, 0.04, names[i], fontweight="bold", fontsize=14, ha="right")"""# 设置四周的线不可见spines = ["top", "right", "left", "bottom"]for s in spines:ax_objs[-1].spines[s].set_visible(False)# 让它可以透明显示rect = ax_objs[-1].patchrect.set_alpha(0)# 移除y轴ax_objs[-1].set_yticklabels([])"""#gs.update(hspace=-0.7)
#fig.text(0.07,0.85,"Distribution of Aptitude Test Results from 18 – 24 year-olds",fontsize=20)
plt.tight_layout()
plt.show()

7 气泡图,方块图,热力图

超级详细的热力图讲解:
https://mp.weixin.qq.com/s?__biz=MzUwOTg0MjczNw==&mid=2247490016&idx=1&sn=3acf103945fb4b3f3990d39c69e58266&chksm=f90d5dbece7ad4a8cf236854353cfd18bcced280ae409eab3781aa257fa8b98bd9dfa8be5e9c&token=1680932673&lang=zh_CN#rd

# -*- coding: utf-8 -*-
"""
Created on Sat Nov 30 10:57:58 2019@author: Jie Zhang,微信公众号【EasyShu】,本代码源自《Python数据可视化之美》
"""import numpy as np
import pandas as pd
from plotnine import *
from plotnine.data import mtcars
mat_corr=np.round(mtcars.corr(),1).reset_index()
mydata=pd.melt(mat_corr,id_vars='index',var_name='var',value_name='value')
mydata['AbsValue']=np.abs(mydata.value)
#------------------------------------------------(b) 气泡图------------------------------------------
base_plot=(ggplot(mydata, aes(x ='index', y ='var', fill = 'value',size='AbsValue')) +  geom_point(shape='o',colour="black") +scale_size_area(max_size=11, guide=False) +scale_fill_cmap(name ='RdYlBu_r')+coord_equal()+theme(dpi=100,figure_size=(4,4)))
print(base_plot)#------------------------------------------------(c) 方块图------------------------------------------------
base_plot=(ggplot(mydata, aes(x ='index', y ='var', fill = 'value',size='AbsValue')) +  geom_point(shape='s',colour="black") +scale_size_area(max_size=10, guide=False) +scale_fill_cmap(name ='RdYlBu_r')+coord_equal()+theme(dpi=100, figure_size=(4,4)))
print(base_plot)#------------------------------------------------(f) 带标签的热力图-----------------------------------
base_plot=(ggplot(mydata, aes(x ='index', y ='var', fill = 'value',label='value')) +  geom_tile(colour="black") +geom_text(size=8,colour="white")+scale_fill_cmap(name ='RdYlBu_r')+coord_equal()+theme(dpi=100,figure_size=(4,4)))
print(base_plot)

在这里插入图片描述

8 网页在线图标生成工具

点点鼠标就可以的三个网页端可视化工具介绍
sanddance:https://sanddance.js.org/app/
kepler:https://kepler.gl/
mobmap:https://shiba.iis.u-tokyo.ac.jp/member/ueyama/mm/app/

这个是代码示例,R和python都有
https://www.python-graph-gallery.com/

机器学习算法的可是化动态过程,帮助更好理解算法
https://www.naftaliharris.com/blog/

9 地理数据绘图

https://blog.csdn.net/qq_41185868/article/details/80806521

太棒了https://www.zhihu.com/question/33783546

10 参考

【数据可视化】Python制作精美的大屏可视化_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1Ak4y167pR/?spm_id_from=333.788.b_7265636f5f6c697374.11

如何进行数据可视化制图相关推荐

  1. 数据可视化制图工具:Echarts(基于JS)

    1.1 什么是ECharts? ECharts是一个使用 JavaScript 实现的"数据可视化"库, 它可以流畅的运行在 PC 和移动设备上 什么是数据可视化? 也就是可以将数 ...

  2. 数据可视化制图工具:【免费:Excel、Echarts(基于JS)、D3、Geoplotlib、GIS、BDP(免费BI)】【收费:Tableau(收费BI)、PowerBI】

  3. c# 数据可视化_#OpenVisConf上的22位数据可视化从业者的10点收获

    c# 数据可视化 by Siena Duplan 通过锡耶纳·杜普兰(Siena Duplan) #OpenVisConf上的22位数据可视化从业者的10点收获 (10 Takeaways from ...

  4. 超硬核的 Python 数据可视化教程!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:机器学习算法那些事 Python实现可视化的三个步骤: ...

  5. [译] 数据可视化教程:基于Google Sheets 和 RStudio Shiny 建立实时仪表盘

    Thanks for Douglas Watson,the original English version is http://douglas-watson.github.io/post/gdocs ...

  6. 数据可视化 | Seaborn

    Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特 ...

  7. python气象数据可视化_python grib气象数据可视化

    利用Python语言实现Grib数据可视化主要依靠三个库--pygrib.numpy和matplotlib.pygrib是欧洲中期天气预报中心(ECMWF)的GRIG API C库的Python接口, ...

  8. 超硬核的 Python 数据可视化教程

    来源:数据分析1480 本文约3000字,建议阅读6分钟 本文为你介绍Python实现可视化的三个步骤. Python实现可视化的三个步骤: 确定问题,选择图形 转换数据,应用函数 参数设置,一目了然 ...

  9. 独家 | 盘点9个适用所有学科的R数据可视化包(附链接)

    作者:Asha Hill 翻译:王雨桐 校对:蒋雨畅 本文约1900字,建议阅读8分钟. 本文将简要盘点R中常用的9个可视化包,并通过简要介绍包的特点和相关案例来帮助读者深入理解可视化包. 如果最近浏 ...

最新文章

  1. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Poll、Epoll模型处理长连接性能比较
  2. Linux复制文件scp
  3. Linux --Solr 安装/配置
  4. python爬取虾米音乐_Python爬取620首虾米歌曲,揭秘五月天为什么狂吸粉?!
  5. mongodb--GridFS
  6. jzoj100047-基因变异【位运算,bfs】
  7. 前端学习(2955):项目中组件的全局注册
  8. JAVA进阶教学之(单链表数据结构)
  9. MSSQL - 最佳实践 - 如何打码隐私数据列
  10. DHCP租用信息导出方案
  11. 温升测试总结setllom解胶剂
  12. Python使用Plotly绘图工具,绘制面积图
  13. 【论文】最新图学习推荐系统综述 | Graph Learning Approaches to Recommender
  14. 最长公共子串(10分)
  15. 分享谷歌SEO的32个实用关键词拓展工具
  16. java时间格式转换
  17. I have nothing 中文歌词 歌词
  18. 宝塔一个IP创建多站点
  19. jira字段配置(域配置)_到期日、时间跟踪等根据需要自行配置
  20. 微信扫码提示在浏览器中打开的遮罩代码解决方式

热门文章

  1. WCF 项目应用连载[6] - 升级Lig服务 - 设计ILigger 构建一个完善的Lig版本
  2. GoLang音视频转码
  3. Errors during downloading metadata for repository ‘AppStream‘: - Status code: 404 for http://mirro
  4. VM虚拟机ssh免密登录其他主机
  5. Cesium专栏-空间分析之地形等高线(附源码下载)
  6. 本地计算机用户组,管理本地用户与组账户
  7. Chromedriver适用谷歌浏览器的各个版本
  8. 新鲜出炉的连连看连接算法Python版
  9. Jexl表达式引擎(1)
  10. ospf 指定dr_OSPF DR BDR 配置方法2