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

  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. you-get下载B站视频

    you-get下载B站视频 库存 you-get介绍 https://github.com/soimort/you-get you-get是一个命令行工具,可以下载知名网站的视频 支持的网站有  ht ...

  2. 编写FailServlet和SuccessServlet类

    @WebServlet("/successServlet") public class SuccessServlet extends HttpServlet { protected ...

  3. javaEE(多线程、线程通信、线程安全、线程池、线程池工具)

    多线程 多线程的创建 Thread类的方法 线程安全.线程同步 线程通信.线程池 定时器.线程状态.. Thread类 java是通过java.lang.Thread类来代表线程的 按照面向对象的思想 ...

  4. appium 在linux安装和使用(持续更新)

    appium V1.10 centos7.4 安装 安装步骤 1. 安装node 为了得到npm(node package manager,nodejs的安装包管理工具,可以通过npm来下载appiu ...

  5. clicknium-划时代的自动化

    说起UI自动化,selenium一直是不可替代的存在,它的安装量.百度数量已经奠定了它在自动化.爬虫等相关领域的霸主低位,可以说,只要涉及到UI自动化,选selenium就对了. 细数过往,相关的UI ...

  6. Prometheus插件安装(mysql_exporter)

    Prometheus插件安装(mysql_exporter) 简介 mysql_exporter是用来收集MysQL或者Mariadb数据库相关指标的,mysql_exporter需要连接到数据库并有 ...

  7. JS 获取参数、封装

    var common = { getQueryString : function(name){ var reg = new RegExp('(^|&)' + name + '=([^& ...

  8. 轻量级CI/CD发布部署环境搭建及使用_02_docker安装jenkins

    轻量级CI/CD发布部署环境搭建及使用_02_docker安装jenkins 授人以鱼不如授人以渔,如果说的别人都没明白,说明自己实际也不是太明白   1,搜索jenkins docker searc ...

  9. rn用Modal实现Drawer

    PS:本文仅说明Modal可以用来做Drawer,并不介绍Modal的用法. 今天在开发的时候,想要使用Drawer. RN原生不自带Drawer,react-native-drawer又有bug(没 ...

  10. Vue 组件VueComponent中_ _proto_ _ 原型对象的指向(指向Vue的原型对象 _ _proto_ _)

    1.VueComponent.prototype.__proto__ === Vue.prototype 2.让组件实例对象(vc)可以访问到Vue原型上的属性.方法 图片如下: 案例: Vue.pr ...