Python可视化学习笔记

在机器学习的过程中或者在数据分析过程中,难免要对数据进行探索,人是视觉动物,所以一般可视化的方法非常重要,但是对于各种图形怎么用,一直是没有什么概念,这次学习数据分析实战,有一讲专门讲数据可视化,刚好梳理下。

从图形化的方法来说,主要是为了展示分布(比如数据几种在哪里?) ,对比(两个变量或多个变量的关系),部分和整体的关系(比如圆饼图),联系(多个变量之间的关系)。

Matplotlib是python中常用的工具包,方便画图。seaborn 包是基于matplotlib图形可视化的python包,它提供一种高度交互的界面,提供高层次的API封装,使作图更加容易。
安装这个包比较容易:

#安装包并安装这个包需要依赖的包
pip install seaborn -U

散点图

散点图主要表达多个变量之间的联系,如果数据集中包含上千个点,散点图是比较好的图表类型。

  1. 可以看出点是分布是集中还是分散的。
  2. 变量之间是否存在数量关联趋势。
  3. 如果存在关联关系是线性还是曲线的。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)


# 用Matplotlib画散点图
plt.scatter(x, y,marker='x')
plt.show()
# 用Seaborn画散点图
df = pd.DataFrame({'x': x, 'y': y})
#直方图
sns.jointplot(x="x", y="y", data=df, kind='scatter');
#带曲线的直方图
sns.jointplot(x="x", y="y", data=df, kind='reg');
plt.show()
Matplotlib画的图
seaborn

折线图

折线图可以用来表示数据随着时间变化的趋势。
非常适用于显示在相等的时间间隔下的数据趋势,比如财务的月度报表,季度报表等。
matplotlib 和seaborn 画出来的差别不大


折线图
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
x = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
y = [5, 3, 6, 20, 17, 16, 19, 30, 32, 35]
# 使用Matplotlib画折线图
plt.plot(x, y)
plt.show()
# 使用Seaborn画折线图
df = pd.DataFrame({'x': x, 'y': y})
sns.lineplot(x="x", y="y", data=df)
plt.show()

复杂一点的折线图:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from numpy.random import randn

plt.style.use('ggplot')
plot_data1=randn(50).cumsum()
plot_data2=randn(50).cumsum()
plot_data3=randn(50).cumsum()
plot_data4=randn(50).cumsum()
fig=plt.figure(1,figsize=(10,8),facecolor="white")
ax=fig.add_subplot(1,1,1)
ax.spines["left"].set_color("white")
ax.spines["bottom"].set_color("white")
ax.plot(plot_data1,marker=r'o',markersize=4,markeredgecolor='black',color=u'blue',linestyle='-',label='Blue Solid')
ax.plot(plot_data2,marker=r'+',color=u'red',linestyle='--',label='Red Dash')
ax.plot(plot_data3,marker=r'*',color=u'green',linestyle='-.',label='Green Dash Dot')
ax.plot(plot_data4,marker=r's',color=u'orange',linestyle=':',label='Orange Dotted')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
plt.title('Line Plots:Markers,Colors,and Linestyles')
plt.xlabel('Draw')
plt.ylabel('Random Number')
plt.legend(loc='best')
plt.grid()
plt.show()
复杂折线图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


# 构建 时间序列数据 从2000-1-31开始,以月份为间隔,构建100条记录
index = pd.date_range("1 1 2000", periods=100,freq="m", name="date")
data = np.random.randn(100, 4).cumsum(axis=0)
print(data)

# 构建5列数据,列名分别为data a b c d
wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"])

案例7:绘制时间序列数据

sns.lineplot(data=wide_df)
plt.show()
seaborn画复杂点图

直方图

直方图是比较常见的视图,是一种统计报告图,由一系列高度不等的线段表示数据的分布,
直观显示数据的变化情况。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


# 数据准备
a = np.random.randn(100)
s = pd.Series(a) 
# 用Matplotlib画直方图
plt.hist(s)
plt.show()
# 用Seaborn画直方图
sns.distplot(s, kde=False)
plt.show()

sns.distplot(s, kde=False)
plt.show()
# 制定一些绘图参数
sns.distplot(s, rug=True, rug_kws={"color": "g"},
             kde_kws={"color": "k", "lw": 3, "label": "KDE"},
             hist_kws={"histtype": "step", "linewidth": 3,
                       "alpha": 1, "color": "g"})
plt.show()
直方图

条形图

通过条形图可以看到变量的数值分布,条形图可以帮我们查看类别的特征。


条形图

箱线图

箱线图又称盒式图,股市的走势就是直方图,由五个数值点组成:最大值(max),最小值(min),中位数(median)和上下四分位数(Q3,Q1)。

 import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# 数据准备
# 生成0-1之间的10*4维度数据
data=np.random.normal(size=(10,4)) 
lables = ['A','B','C','D']
# 用Matplotlib画箱线图
plt.boxplot(data,labels=lables)
plt.show()
# 用Seaborn画箱线图
df = pd.DataFrame(data, columns=lables)
sns.boxplot(data=df)
plt.show()
箱线图

饼状图

饼状图主要是说明整体和部分的关系。


饼状图
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.pyplot as plt

# 数据准备
nums = [25, 37, 33, 37, 6]
labels = ['High-school','Bachelor','Master','Ph.d', 'Others']
# 用Matplotlib画饼图
plt.pie(x = nums, labels=labels)
plt.show()

热力图

热力图是由一组组方块组成,方块中用颜色的深浅来表示数值的大小,通过颜色判断数值的大小,颜色越浅,数值越大。


import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
flights = sns.load_dataset("flights")
data=flights.pivot('year','month','passengers')
# 用Seaborn画热力图
sns.heatmap(data)
plt.show()
热力图

参考
http://www.sohu.com/a/256123214_464033

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • 今天我来给你讲讲Python的可视化技术。 如果你想要用Python进行数据分析,就需要在项目初期开始进行探索性的...
    妄心xyx阅读 37,285评论 2 67
  • 今天我来给你讲讲Python的可视化技术。 如果你想要用Python进行数据分析,就需要在项目初期开始进行探索性的...
    妄心xyx阅读 1,475评论 0 17
  • 二三百雾霾的时候,毛事没有,今天天清气朗,空气质量39,优,师傅咳嗽个不停。 好吧,以上是我的主观臆断,没有丝毫逻...
    陈希_chenxi456456阅读 74评论 0 0
  • 如果非要给所有肉食排个榜单的话,鸡翅一定会名正言顺的闯入前三甲的行列。 鸡翅的做法太多样,像可乐鸡翅、红烧鸡翅、蜜...
    美搭girl阅读 928评论 2 9
  • 那天下午,第一次听了王建房的现场。 我不知道有多少人认识和喜欢这个吼着陕西摇滚的西北汉子,但是当我无意中路过小寨一...
    好姑娘卓子阅读 2,652评论 0 2