数据可视化——Matplotlib(1)
导入相关模块
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
基本图表
散点图:scatter
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x,y)
plt.show()
scatter的函数签名如下
scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,verts=None,edgecolors=None,hold=None,data=None,**kwargs)
- x,y:形如shape(n,)的数组
- s:点的大小,默认20
- c:点的取色序列,默认蓝色
- marker:点的形状,默认是圆(具体的点的形状可以在matplotlib的官网中搜索markers查看。)
- alpha:点的透明度
- edgecolors:边缘颜色
plt.scatter(x,y,c='rykgm',s=100,marker='>')
plt.show()
plt.scatter(x,y,alpha=0.5)
plt.show()
plt.scatter(x,y,edgecolors='r')
plt.show()
柱状图:bar
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data)
plt.show()
bar的函数签名如下:
bar(left, height, width=0.8, bottom=None, **kwargs)
事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小,具体定位如下:
- (left - width / 2, bottom)为左下角位置
- (left + width / 2, bottom + height)为右上角位置
plt.bar([0.3,1.7,4,6,7], data, width=0.6,bottom=[10,0,5,0,5])
plt.show()
对于柱状图,还可以设置以下参数:
- 颜色:color
- 描边:edgecolor(ec):边缘颜色;linestyle(ls):边缘样式;linewidth(lw):边缘粗细
- 填充:hatch:可取值为: / , \ , | , - , + , x , o , O , . , *
- 位置标志:tick_label
labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']
plt.bar(range(len(data)),data, color='rgb',ec='r',ls='--',lw=2,hatch='o',tick_label=labels)
plt.show()
堆叠柱状图
通过bottom参数,可以轻松实现堆叠柱状图
size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)
plt.bar(x, a, label='a')
plt.bar(x, b, bottom=a, label='b')
plt.legend()
plt.show()
并列柱状图
并列柱状图则需要通过left属性添加偏移量来实现
total_width, n = 0.8, 2
width = total_width / n
x = x - (total_width - width) / 2plt.bar(x, a, width=width, label='a')
plt.bar(x + width, b, width=width, label='b')
plt.legend()
plt.show()
条形图
类似bar方法,仅换了方法名称:barh(bar-horizontal)
plt.barh(range(len(data)), data)
plt.show()
barh的签名为
barh(bottom, width, height=0.8, left=None, **kwargs)
因此,使用时可以看成是bar的旋转,其方法完全一样
正负条形图
可以通过barh方法轻松获得
a = np.array([5, 20, 15, 25, 10])
b = np.array([10, 15, 20, 15, 5])plt.barh(range(len(a)), a)
plt.barh(range(len(b)), -b)
plt.show()
折线图:plot
a = np.array([5, 20, 15, 25, 10])
plt.plot(a)
plt.show()
和柱状图类似,plot也提供了一些常用的参数,折线图含有两种对象:点和线,因此,可以分别对点和线进行设置,对线的设置与柱状图类似,参数有ls、lw;对点的设置可以参照scatter中的参数,为了区分点和线,规定在点参数前添加一个字母m(marker)来表示,至于线的颜色,可以通过color(c)参数来设置。因此,一个简单的参数设置可以如下表示:
plt.plot(a, color='r',ls='--',lw=2,marker='o',mec='b',ms=10, mfc='w')
plt.show()
plot还提供了一个更简洁的方法:合并color、marker、linestyle三个参数为一个字符串,方便设置。
plt.plot(a,'ro--')
plt.show()
在做数据可视化的时候,常用的基本图表有折线图、散点图和柱状图三种,其它诸如饼图、箱形图等出现较少,第一部分暂不处理。有了这些图标已经可以做一些基本的分析了,下一节中,将介绍一些常用的设置,诸如坐标轴、标签等。
参考
- matplotlib之散点图 - 我的前进日志 - 博客园
- matplotlib绘图——柱状图 - 知乎
- matplotlib绘图——折线图 - 知乎
数据可视化——Matplotlib(1)相关推荐
- Python数据可视化matplotlib(一)—— 图表的基本元素
Python数据可视化matplotlib(一)-- 图表的基本元素 图表创建 plt.show() # 图表窗口1 → plt.show()plt.plot(np.random.rand(10)) ...
- Python数据可视化matplotlib:第四回:文字图例尽眉目
Python数据可视化matplotlib:第四回:文字图例尽眉目 1. Figure和Axes上的文本 大家可以看到有些论文或者博客上都有绘制的很漂亮的图,其中大部分都在图形绘制上进行一定的注释说明 ...
- 每日一课 | Python数据可视化—Matplotlib初体验
04. Matplotlib初体验 大家好,我是小C,上期给大家分享--Python数据可视化-如何做好启动准备(小白必读) 本期分享内容:Python数据可视化-Matplotlib初体验 本期小C ...
- 数据可视化: matplotlib绘制动态图及3维动画
动画可以有趣地展示某种现象.相比于静态图表,人们更容易被动画和交互式的图表所吸引.在描绘时间序列数据时,动画更有意义,例如多年来股票价格的波动,过去十年气候的季节性变化和和趋势,因为我们可以看到特定参 ...
- Python数据可视化 Matplotlib详解(一) —— 折线图与时序数据绘制
目录 本小节内容 基础代码 实例讲解 如何多图绘制 多行多列的情况 多行单列的情况 Matplotlib 绘制时序数据 多时序变量绘图 如何给数据添加注释 Reference 本小节内容 今天这一小节 ...
- 数据可视化matplotlib(一)---亚马逊销售飙升榜
数据可视化是数据分析的重要任务之一. 之前有获取到亚马逊销售飙升榜的数据,但是排名只是按列表顺序排序,销售排名上升的幅度只有数字的变化,体现的不是很直观. 所以使用python的matplotlib实 ...
- Python数据可视化--Matplotlib
一.基本概念 Matplotlib 是一个 Python 的 2D 绘图库,是一个非常强大的 Python 画图工具.在机器学习和深度学习中,面对海量的数据集,我们时常需要通过绘图直观的呈现出这些数据 ...
- 第十九章 python 数据可视化 Matplotlib Pygal
python 数据可视化 一.使用Matplotlib生成数据图 1. matplotlib画图中文乱码小方框的解决方法 2. 知识点 3. 安装Matplotlib包 4. Matplotlib数据 ...
- python plt包_Python 数据可视化-Matplotlib包学习笔记(一)
Python 数据可视化 本文主要参照Matplotlib的官方教程进行整理,作为个人的学习笔记进行分享,欢迎相互讨论. Matplotlib包学习笔记(一) 本文主要简单介绍一下Matplotlib ...
最新文章
- C++基本知识点集锦(2022秋招)
- python学习笔记十五:日期时间处理笔记
- 处理硬件设备访问权限问题
- createdroptargets_使用DUILIB建立项目
- spss多元非线性曲线拟合_快速掌握SPSS数据分析
- 【clickhouse】ClickHouse表引擎 MergeTree 数据生命周期
- 解决方案,org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- Static allocator 3
- android获取组件id,Android 获取控件id的三种方式
- WinDriver驱动程序开发入门教程
- python bt_linux平台使用Python制作BT种子并获取BT种子信息的方法
- html代码鼠的故事游戏,分享一个html+js实现打地鼠游戏的实例代码
- nubia android root权限,努比亚Z11 root教程及获取root权限的方法
- Let's talk OOP Again
- 默纳克系统服务器看平衡系数,默纳克不放重物空轿厢做平衡系数方法
- 分子动力学软件-VMD(win版)
- 知识图谱嵌入的衡量指标:MRR,MR,HITS@n
- SpringCloud(7) LCN分布式事务框架入门
- php微信小程序服务商支付模式
- uniapp H5写入百度统计
热门文章
- imx8mini openCV mipi摄像头报错: VIDIOC_QUERYCTRL: Inappropriate ioctl for device
- c#使用斑马打印机打印标签(链接数据库)
- apache ii评分和死亡率_APACHE-II、Balthazar CT评分对重症急性胰腺炎患者的严重度及预后评价探讨...
- 微信社区该怎么玩----每一个优质的粉丝圈都需要有一个积分商城
- 互联网世界无边界,想去看看未来的样子
- 如何选择最佳存储解决方案
- Java深浅克隆原理及实现
- C#导入excel到数据库
- python读取excel文件
- Tip -- 加粗字体 打印出来后不显示加粗