第八章用matplotlib、seaborn、pyecharts绘制散点图
本文可以学习到以下内容:
- matplotlib 中文乱码解决办法
- seaborn 中文乱码解决办法
- seaborn 库csv数据下载地址
- 用matplotlib、seaborn、pyecharts绘制散点图
散点图
小凡在做数据分析的时候,经常需要对数据进行可视化操作,这样可以更加直观的了解数据,从而更好的分析数据。python常用来做数据可视化的第三方库有:matplotlib、seaborn、pyecharts。这几个第三方库都有各自的适用场景。
小凡在学习python的时候,最先接触的是matplotlib,工作中又接触到了pyecharts、seaborn。本篇以散点图为例,重点在于如何方便的使用这些库。
matplotlib绘制散点图
matplotlib是python数据可视化最著名的绘图库,他可以很轻松的绘制出各种各样的图表。
导入seaborn、pandas、numpy、matplotlib等库
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
在绘制图表的时候 matplotlib 对中文会显示成方框,可以用下面办法解决:
# 黑体
plt.rcParams["font.family"] = "SimHei"
# plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决无法显示符号的问题
plt.rcParams['axes.unicode_minus'] = False
# seaborn默认主题
# sns.set()
# 解决Seaborn中文显示问题
sns.set(font='SimHei',font_scale=0.8)
官网散点图案例,绘制出雅虎股票相邻两天的调整后的收盘价(adj_close)涨跌幅度散点图
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
# Load a numpy record array from yahoo csv data with fields date, open, close,
# volume, adj_close from the mpl-data/example directory. The record array
# stores the date as an np.datetime64 with a day unit ('D') in the date column.
# 加载数据
price_data = (cbook.get_sample_data('goog.npz', np_load=True)['price_data']
.view(np.recarray))
# 获取最近250天的交易数据
price_data = price_data[-250:] # get the most recent 250 trading days
# 计算涨跌幅度
delta1 = np.diff(price_data.adj_close) / price_data.adj_close[:-1]
# Marker size in units of points^2
# 设置散点图每个点的颜色和大小
volume = (15 * price_data.volume[:-2] / price_data.volume[0])**2
close = 0.003 * price_data.close[:-2] / 0.003 * price_data.open[:-2]
# 设置图表和坐标轴
fig, ax = plt.subplots()
# 设置x轴、y轴数据,散点的大小、颜色、透明度属性
ax.scatter(delta1[:-1], delta1[1:], c=close, s=volume, alpha=0.5)
# 设置x轴标题
ax.set_xlabel(r'$\Delta_i$', fontsize=15)
# 设置y轴标题
ax.set_ylabel(r'$\Delta_{i+1}$', fontsize=15)
# 设置标题
ax.set_title('Volume and percent change')
# 显示网格线
ax.grid(True)
fig.tight_layout()
# 显示图表
plt.show()
散点图绘制结果如下:

seaborn绘制散点图
seaborn是基于matplotlib封装的高级API库,为绘制各种复杂的图表提供了便利。
seaborn的官网数据下载缓慢,我已下载完成,放在【数据加工厂】文件夹下,命名为 seaborn_data
# 加载案例数据
data_path = "../数据加工厂/seaborn_data/tips.csv"
tips = pd.read_csv(data_path)
# 修改为中文名
tips.columns = ["总账单","小费","性别","是否吸烟","星期几","时间","大小"]
用 head 方法进行数据预览
tips.head()

绘制出:不同时间段(午餐、晚餐)吸烟的人和不吸烟的人花费的账单和给的小费的关系散点图
# 绘制散点图
sns.relplot(
data=tips,
x="总账单",
y="小费",
col="时间",
hue="是否吸烟",
style="是否吸烟",
# size="size"
)
散点图绘制结果如下:

pyecharts绘制散点图
pyecharts将python和echarts结合起来,具有良好的交互性和观赏性,很适合用于制作数据报表。
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
df = pd.DataFrame(data={"名称":Faker.choose(),"商家A":Faker.values(),"商家B":Faker.values()})
用 head 方法进行数据预览
df.head()

c = (
Scatter()
.add_xaxis(df["名称"].values.tolist())
.add_yaxis("商家A", df["商家A"].values.tolist())
.add_yaxis("商家B", df["商家B"].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),
visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),
)
)
c.render_notebook()
散点图绘制结果如下:

源码地址
链接:https://pan.baidu.com/s/17nJOEDbLDXTNUJSx3TiQtw?pwd=9izg
提取码:9izg
第八章用matplotlib、seaborn、pyecharts绘制散点图的更多相关文章
- matplotlib画图工具/绘制散点图
绘制散点图 import matplotlib.pyplot as plt fig=plt.figure() ax = fig.add_subplot(111) ax.scatter(x,y, s,c ...
- 使用matplotlib绘制散点图
在matplotlib中使用函数 matplotlib.pyplot.scatter 绘制散点图,matplotlib.pyplot.scatter的函数签名如下: matplotlib.pyplot ...
- 用seaborn绘制散点图
散点图可以显示观察数据的分布,描述数据的相关性,matlibplot也可以绘制散点图,不过我一般优先使用seaborn库的sctterplot()绘制,下面就介绍一下如何用seaborn.scatte ...
- matplotlib 知识点13:绘制散点图(scatter函数精讲)
散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合. 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间 ...
- 2. matplotlib绘制散点图
与绘制直线图的唯一区别:plt.scatter # coding=utf-8 from matplotlib import pyplot as plt from matplotlib import f ...
- matplotlib库绘制散点图
假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律? a = [11,17,16,11,12,11,12,6,6 ...
- Python:matplotlib绘制散点图
与线型图类似的是,散点图也是一个个点集构成的.但不同之处在于,散点图的各点之间不会按照前后关系以线条连接起来. 用plt.plot画散点图 奇怪,代码和前面的例子差不多,为什么这里显示的却是散 ...
- matplotlib各图形绘制
2D图形 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.py ...
- 【Python】使用scatter()绘制散点图
绘制简单散点图 要绘制单个点,使用scatter()函数,并向它传递一对x和y坐标,它将在指定位置绘制一个点 import matplotlib.pyplot as plt plt.scatter(2 ...
- # 使用scatter()绘制散点图
使用scatter()绘制散点图 之前写过一篇,使用magic function快速绘图的教程了:https://www.cnblogs.com/jiading/p/11750001.html.但这种 ...
随机推荐
- LeetCode_单周赛_331
2558. 从数量最多的堆取走礼物 题意 给一组数字,每秒都选择最大的一个,留下其平方根 用 最大堆就行 code class Solution { public long pickGifts(int ...
- C#IIS上传文件大小设置问题:maxRequestLength、maxAllowedContentLength
system.web节点下的 maxRequestLength属性来指定最大上传文件的size,默认值是4M <system.web> <httpRuntime maxRequest ...
- 真正“搞”懂HTTPS协议17之TLS握手
经过前两章的学习,我们知道了通信安全的定义以及TLS对其的实现~有了这些知识作为基础,我们现在可以正式的开始研究HTTPS和TLS协议了.嗯--现在才真正开始. 我记得之前大概聊过,当你在浏览器的地址 ...
- 利用ICSharpCode.SharpZipLib.dll解析 出错:“Wrong Local header signature: 0xFF8”
分析原因 利用ICSharpCode.SharpZipLib.dll解析APK时,进入APK的AndroidXml获取时出现报错 出错代码 using (ICSharpCode.SharpZipLib ...
- C++练习6 不同参数的传递方式
当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响 当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响 1 #include <iostream> 2 ...
- 两台linux服务器互相自动备份
转载:csdn https://blog.csdn.net/gjwgjw1111/article/details/103515031
- 2014-12-2 Z字形扫描
问题描述 试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zi ...
- 基于官方Chrome、Firefox软件包得到便携版
1. 前言 安装好操作系统后,一般系统都带有浏览器,比如,Windows 10 自带Edge.Ubuntu 自带Firefox等等.有的时候我们想使用一下别的浏览器或者是别的版本(如,开发者版),可是 ...
- 原生javascript解锁恶心的CSDN强制关注才能阅读让文章自动展开(转部分内容)
此时你可以打开chrome浏览器的开发者工具 快捷键F12, 然后切换到Console界面 然后复制上面的javascript代码 var article_content=document.getEl ...
- ubuntu 中将DSLR相机用作网络摄像头
一.安装所需软件 sudo apt-get install gphoto2 v4l2loopback-utils v4l2loopback-dkms ffmpeg 二.Video4Liunx 配置 1 ...