数据可视化能让人们更直观的传递数据所要表达的信息。Python 中有两个专用于可视化的库,matplotlib 和 seaborn ,本文将介绍matplotlib。

  • Matplotlib:基于Python的绘图库,提供完全的 2D 支持和部分 3D 图像支持。
  • Seaborn:该 Python 库能够创建富含信息量和美观的统计图形。Seaborn 基于 matplotlib,具有多种特性,比如内置主题、调色板、可视化单变量数据、双变量数据,线性回归数据和数据矩阵以及统计型时序数据等,能让我们创建复杂的可视化图形。

一、python代码实现(matplotlib库

1、导入数据库

import matplotlib.pyplot as plt # 我们最常用matplotlib中的pyplot模块,别名设置为plt是约定俗称常用,也可以自己设置

2、作图

结合实际绘画过程,我们来理解一下用python作图,每一行代码的意义:

图形种类很多,根据实际项目需求,绘制不同类型的图像,很多时候我们会融合多种图像,从不同角度分析结果:

  1. 数值型:散点图
  2. 时间序列:折线图
  3. 分类数据:柱状图
  4. 颜色:热图
  • 下面介绍一下常见的图以及常用的属性

2.1 散点图

x=[0.5,0.75,1,2,3,3.5,4,5.5]  # 某学生不同科目的学习时间
y=[10,22,25,40,50,70,90,93]     # 对应不同科目的分数# 画散点图
plt.scatter(x,y,s=200)  # s表示设置散点的大小#设置图标标题
plt.title('学生分数情况',fontsize =24)# 设置坐标轴标签
plt.xlabel('学习时间')
plt.ylabel('考试分数')plt.show()

2.2 折线图

# 折线图
x=[1,2,3,4,5]
y=[10,20,20,35,30]# 作图
'''
linewidth:修改线条宽度
color:     修改线条颜色
marker:    点的形状,o表示点为圆圈标记
linestyle:线条的形状,dash表示用虚线连接,也可以直接用'--'表示
label:    增加图例
'''plt.plot(x,y,linewidth=3,color='red',marker='o',linestyle='--',label='我是图例')# 显示图例
plt.legend(loc = 'upper left')  # loc设置图例位置# 设置图标的标题,并且给坐标轴加上标签
plt.title('我是标题',fontsize=20)  #fontsize 修改标题大小
plt.xlabel('我是横轴')
plt.ylabel('我是纵轴')

我们希望x轴的刻度是0,1,2,3,4……,y轴的刻度是0,10,20,30……,所以我们需要手动设置。

# 修改坐标轴范围——方法1
plt.xticks([0,1,2,3,4,5,6])  # 直接以列表形式给出横轴
plt.yticks(np.linspace(0,40,5))  # 利用linspace()可以生成制定范围均匀分布的数,给出纵轴

# 修改坐标轴范围——方法2
'''
axis:坐标轴范围
语法:axis[xmin,xmax,ymin,ymax]
也就是axis[x轴最小值,x轴最大值,y轴最小值,y轴最大值,]'''
plt.axis([0,6,0,40])

'''
使用数组同时绘制多个线性
'''x= np.arange(0,20,0.2)
y1 =  x
y2 =  x**2
y3 = x**3# 使用plot绘制线条
lineList = plt.plot(x,y1,x,y2,x,y3)# 使用setp方法可以同时设置多个线条的属性
plt.setp(lineList,color='r')plt.show()

如何在图上添加文本注释:

# 数据
x=[1, 2, 3, 4]
y=[1, 4, 9, 16]# 作图
plt.plot(x,y ,color='r')# 添加坐标轴名称
plt.xlabel('我是x轴')
plt.ylabel('我是y轴')# 添加注释
'''
参数名xy:箭头注释中箭头所在位置,
参数名xytext:注释文本所在位置,
arrowprops在xy和xytext之间绘制箭头,
shrink表示注释点与注释文本之间的图标距离
# '''
plt.annotate('我是注释',xytext=(2,10) ,xy =(2,4.5),arrowprops=dict(facecolor='black',shrink=0.02))

如何将多个子图画在一个图板上:

# 数据
x= np.arange(0,8,0.2)
y1 =  x
y2 =  x**2
y3 = x**3# 创建画板
plt.figure(figsize=(3*4,1*3))  # figsize(画板宽度,画板高度),宽度决定列数,高度决定行数
ax1 = plt.subplot(1,3,1)
plt.plot(x,y1)
plt.title('我是y1对应的图')# 创建画纸2并作图
ax2 = plt.subplot(1,3,2)
plt.plot(x,y2)
plt.title('我是y2对应的图')# 创建画纸3并作图
ax3 = plt.subplot(1,3,3)
plt.plot(x,y3)
plt.title('我是y3对应的图')
plt.show()

2.3 柱状图

2.3.1 单系列柱状图

# 柱状图
# 数据
x = np.array(list('ABCDEF'))
y =  np.random.randint(1,100,6)# 作图
# x,y参数:x,y值
# width:宽度比例
# facecolor柱状图里填充的颜色plt.bar(x,y,width=0.5,facecolor='lightblue')
plt.show()plt.bar - 这个网站可出售。 - 最佳的Server monitoring 来源和相关信息。# 柱状图
# 数据
x = np.array(list('ABCDEF'))
y =  np.random.randint(1,100,6)# 作图
# x,y参数:x,y值
# width:宽度比例
# facecolor柱状图里填充的颜色plt.bar(x,y,width=0.5,facecolor='lightblue')
plt.show()

2.3.2 多系列柱状图

之前我们都是用plt来作图,事实上pandas也可以直接作图,下面就展示一下如何用pandas作多系列柱状图:

# 数据
df =  pd.DataFrame(np.random.rand(10,3)*20,columns=['a','b','c'])
df

# 之前都是用plt作图,其实DataFrame也可以作图
df.plot(kind='bar')
plt.show()

图以DataFrame的index为横轴,columns为纵轴,自动生成了图例。

# 柱状图的填充颜色也可以更改
df.plot(kind='bar',colormap='Blues_r',grid=True)   # grid显示网格线
plt.show()

2.3.3 堆叠图

df.plot(kind='bar',grid = True,stacked=True)
# 多系列堆叠图
# stacked → 堆叠
plt.show()

2.4 热图

# 利用随机数生成一个二维数据(5*5)
data=[]
for i in range(5):temp = list(np.random.randint(10,50,4))data.append(temp)
data

# 作图并选择热图的颜色填充风格,这里选择hot
from matplotlib import cm
plt.imshow(data,cmap=plt.cm.hot_r)#设置标题,横纵坐标
plt.title('我是标题')# 增加右侧颜色进度条
plt.colorbar()plt.show()

颜色越深,表明数字越大。

python matplotlib画数据分布图_Python数据可视化之matplotlib相关推荐

  1. python画厢式图_Python数据可视化:箱线图多种库画法

    概念 箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q ...

  2. python中文显示不出来_Python数据可视化利器Matplotlib,无法显示中文,怎么办?...

    原标题:Python数据可视化利器Matplotlib,无法显示中文,怎么办? matplotlib无法显示中文主要是因为默认字体不是中文字体,所以我们只需设置一下字体行了. 文字字体设置主要有两种方 ...

  3. python画熊猫论文_Python数据可视化之美:专业图表绘制指南(全彩)

    Python数据可视化之美:专业图表绘制指南(全彩)电子书 系统性地介绍Python 的绘图语法系统,包括matplotlib.Seaborn.plotnine 包,以及用于地理空间数据可视化的Bas ...

  4. python动态横道图_Python数据可视化:甘特图画法

    大家好,我是一名Python数据分析师,我想把自己转行成功之路上的经验分享给大家,由此就有了我的人工智能四部曲:<15天学会Python编程>.<每天10分钟,用Python学数据分 ...

  5. python 映射和反映射_Python 数据可视化:几何对象和美学映射

    从上一课的初步体验中,我们已经获悉,只要加载了数据,并创建了"美学映射"之后,也就有了绘图的基础,然后要思考的就是:做什么形状的图,是散点图,还是箱线图?这些图就是所谓的" ...

  6. python数据分析培训内容可以_Python数据分析师

    阶段一 学完后能达到什么水平? 数据分析师认知篇 说 明:0基础入学,5大进阶之路,8大课程阶段,35+课程,1000+学时, 18大行业经典案例,两大商业项目实战!人工智能是你的终极目标! 课程时长 ...

  7. python如何画动态海浪_python使用matplotlib画动态图

    matplotlib是python的核心绘图库,是python的一个开源项目,旨在为python提供一个绘图库. matplotlib matplotlib与numpy组合是一种可行的matlab替代 ...

  8. python matplotlib画折线图_python使用matplotlib绘制折线图教程

    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序 ...

  9. python使用matplotlib 画柱状图代码_Python 使用 matplotlib 画柱状图教程

    Python 使用 matplotlib 画图是非常方便的,之前的文章记录了<Python 使用 matplotlib 画折线图教程>,今天就再次记录一下使用 matplotlib 画柱状 ...

最新文章

  1. Android新版NDK环境配置(免Cygwin)
  2. 关于学习Python的一点学习总结(42->继承list)
  3. 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
  4. 【代数结构】群 ( 群的定义 | 群的基本性质 | 群的证明方法 | 交换群 )
  5. 尽管苹果打死不认 但iCloud被破解是真的:媒体亲身验证
  6. python居中对齐代码end_Python tkinter.END属性代码示例
  7. 二.Sql语言的分类及运算符
  8. C# CookieHelper帮助类
  9. 3、electron打包生成exe文件
  10. 单片机蜂鸣器唱歌c语言程序,STC89C52单片机蜂鸣器唱歌实验
  11. 你有全面了解过LIMS系统吗?
  12. 3.12_ValueError: x and y must have same first dimension, but have shapes (100,) and (1,)
  13. 微信小程序体验版、正式版的发布流程
  14. 开源PHP微信通用sdk,支持微信支付及所有基础接口(强烈推荐)
  15. 2021-10-21 markdown模板
  16. Oracle 查询库文件信息
  17. 央视点赞!实景三维校园,最暖心的毕业礼...
  18. go基准测试bench
  19. 系统的简单注解 - 12 09_font.asm
  20. mysql之联合索引

热门文章

  1. 原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
  2. 修改Nginx默认80端口指向目录
  3. Unity创建游戏VFX视觉特效-初级到中级
  4. Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender
  5. C++ 技能树(持续更新)
  6. Windows下Qt程序打包
  7. Scrapy shell
  8. html向js传递id
  9. 【机器学习基石笔记】八、噪声和错误
  10. [YTU]_2002(C语言实验——单词统计)