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

  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. Tengine01

    1 简介 Tengine是nginx的一个版本 Tengine文档:http://tengine.taobao.org/ nginx官网: http://nginx.org Nginx (" ...

  2. 不像JVM的JVM

    1.面向对象 面向对象的思想:将功能封装到对象中,通过对象去实现 面向对象的目的:将复杂的事情简单化,将以前过程中的执行者变成了指挥者且符合现在人们的思考习惯 面向对象的三大特征: 封装:将对象的实现 ...

  3. 国际财务系统基于ShardingSphere的数据分片和一主多从实践

    作者:京东物流 张广治 1 背景 传统的将数据集中存储至单一数据节点的解决方案,在性能和可用性方面已经难于满足海量数据的场景,系统最大的瓶颈在于单个节点读写性能,许多的资源受到单机的限制,例如连接数. ...

  4. 视觉SLAM:VIO的误差和误差雅可比矩阵

    1.两个相机之间的非线性优化 观测相机方程关于相机位姿与特征点的雅可比矩阵: 1.1 位姿: 1.2 3D特征点 fx,fy,fz为相机内参 X',Y',Z'为3D点在相机坐标系下的坐标 该误差是观测 ...

  5. 视觉十四讲:第六讲_g2o图优化

    g2o是一个基于图优化的库,图优化是把优化问题表现为一种图的方式.一个图由若干个顶点和边组成. 顶点表示优化变量,边表示误差项. g2o的使用步骤: 1.定义顶点和边的类型: 2.构建图: 3.选择优 ...

  6. Axios、Vue组件-生命周期、计算属性、Slot插槽、自定义事件、v-router、钩子函数

    Axios:网络通信 <script> var vm =new vue({ el:"#app", data(){ return{ info:{ //返回的数据必须和js ...

  7. JZOJ 1083. 【GDOI2006】拯救亚特兰蒂斯

    \(\text{Solution}\) 自己的网络流技术太拉了 连这样的题都做不出来 对于一个怪物,剑术和法术两样东西有一样就可以了 不难想到二分图中最小点覆盖,一条边只有两个端点之一被选就被覆盖了 ...

  8. 微信小程序if for

    1.控制代码的显示隐藏 1.wx:if="{{}}"判断是否需要渲染代码 <view wx:if="{{tiaojian===1}}">显示1< ...

  9. android 实现检测版本,下载apk更新(附源码)

    其实这不是什么难事了,都有热更新的技术了,只是记录一下,大神勿嘲笑. 先说下思路,首先要有更新的接口,只要进入app,就监测一下接口,是否更新,更新的话,检测本地版本是否低于接口返回的版本,低的话,就 ...

  10. 06 RDD编程

    总共有多少学生?map(), distinct(), count() 开设了多少门课程? 每个学生选修了多少门课?map(), countByKey() 每门课程有多少个学生选?map(), coun ...