本文可以学习到以下内容:

  1. matplotlib 中文乱码解决办法
  2. seaborn 中文乱码解决办法
  3. seaborn 库csv数据下载地址
  4. 用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绘制散点图的更多相关文章

  1. matplotlib画图工具/绘制散点图

    绘制散点图 import matplotlib.pyplot as plt fig=plt.figure() ax = fig.add_subplot(111) ax.scatter(x,y, s,c ...

  2. 使用matplotlib绘制散点图

    在matplotlib中使用函数 matplotlib.pyplot.scatter 绘制散点图,matplotlib.pyplot.scatter的函数签名如下: matplotlib.pyplot ...

  3. 用seaborn绘制散点图

    散点图可以显示观察数据的分布,描述数据的相关性,matlibplot也可以绘制散点图,不过我一般优先使用seaborn库的sctterplot()绘制,下面就介绍一下如何用seaborn.scatte ...

  4. matplotlib 知识点13:绘制散点图(scatter函数精讲)

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合. 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间 ...

  5. 2. matplotlib绘制散点图

    与绘制直线图的唯一区别:plt.scatter # coding=utf-8 from matplotlib import pyplot as plt from matplotlib import f ...

  6. matplotlib库绘制散点图

    假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律? a = [11,17,16,11,12,11,12,6,6 ...

  7. Python:matplotlib绘制散点图

    与线型图类似的是,散点图也是一个个点集构成的.但不同之处在于,散点图的各点之间不会按照前后关系以线条连接起来. 用plt.plot画散点图     奇怪,代码和前面的例子差不多,为什么这里显示的却是散 ...

  8. matplotlib各图形绘制

    2D图形 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.py ...

  9. 【Python】使用scatter()绘制散点图

    绘制简单散点图 要绘制单个点,使用scatter()函数,并向它传递一对x和y坐标,它将在指定位置绘制一个点 import matplotlib.pyplot as plt plt.scatter(2 ...

  10. # 使用scatter()绘制散点图

    使用scatter()绘制散点图 之前写过一篇,使用magic function快速绘图的教程了:https://www.cnblogs.com/jiading/p/11750001.html.但这种 ...

随机推荐

  1. SpringBoot Test Junit 联用

    需要导入SpringBoot test和junit的包 @RunWith(SpringRunner.class) @SpringBootTest(classes = PiYuApplication.c ...

  2. ColorFolder文件管理工具使用教程

    ColorFolder ColorFolder Mac中文版是Mac上的一款文件夹图标修改工具,可以帮助您一键改变文件夹的颜色.帮助你更好的保持良好排序和分类,让你的文件显得更有条理,并有效提高文件管 ...

  3. .NET 中的并发编程

    今天我们购买的每台电脑都有一个多核心的 CPU,允许它并行执行多个指令.操作系统通过将进程调度到不同的内核来发挥这个结构的优点.然而,还可以通过异步 I/O 操作和并行处理来帮助我们提高单个应用程序的 ...

  4. Java ”框架 = 注解 + 反射 + 设计模式“ 之 注解详解

    Java "框架 = 注解 + 反射 + 设计模式" 之 注解详解 每博一文案 刹那间我真想令时光停住,好让我回顾自己,回顾失去的年华,缅怀哪个穿一身短小的连衣裙 和瘦窄的短衫的小 ...

  5. ctfshow_web入门 反序列化(254~266)

    要是没接触过的师傅们,可以先看看这个 web 254 这个题没有考什么,get方式传入payload即可,这里xxxxxx,就是6gex而已 payload: ?username=xxxxxx& ...

  6. playwright 实现高亮、is_visible 等源码修改

    一. 前言 高亮是什么? 在ui自动化中可以执行js来让某个页面元素高亮,比如背景颜色.字体颜色.边框颜色等发生改变,以此更加方便执行的时候点了哪一步操作.(如果有不清楚怎么实现的可以转到我的介绍se ...

  7. JZOJ 4250.路径

    \(\text{Solution}\) \(30\) 分暴搜合法路径 另 \(30\) 分状压 设 \(f_{i,j,k}\) 表示当前到第 \(i\) 个点,走过的点状态为 \(j\),走过的路径长 ...

  8. JZOJ 2020.07.16【NOIP提高组】模拟

    总结 这套题相比昨天,简单了不止一点 然而有的人拿了 \(300\) 多 而我只有 \(198\) 预估应该有 \(268\) 的,假了 \(70\) 分 出现了很多奇怪的 \(mistakes\) ...

  9. Gear_Of_War#1

    Gear_Of_War#1 目录 Gear_Of_War#1 1 信息收集 1.1 端口扫描 1.2 后台目录扫描 1.3 SMB服务安全分析 2 GetShell 2.1 ssh登录marcus用户 ...

  10. PostGIS之空间投影

    1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...