Matplotlib及Seaborn可视化

python中常用的两个画图库是Matplotlib和Seaborn,直接pip安装即可。
常玩吃鸡的小伙伴应该很熟悉雷达图,游戏结束后会出现一张评价雷达图,我们可以用Matplotlib库来制作
雷达图

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

labels = np.array([u" 生存 ", u" 伤害 ", u" 击败 ", u" 支援 ", u" 物资 "])
stats = [100.0, 95.0, 95.8, 62.8, 96.8]

angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False)
stats = np.concatenate((stats, [stats[0]]))
angles = np.concatenate((angles, [angles[0]]))

fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
ax.plot(angles, stats, 'o-', linewidth=2)
ax.fill(angles, stats, alpha=0.25)

# 设置中文字体
font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)
ax.set_thetagrids(angles * 180/np.pi, labels, FontProperties=font)
plt.show()
雷达图

成对关系
我们用 Seaborn 自带的 iris 数据集,什么是 Iris 数据集呢?这里引用下百度百科的解释:Iris 数据集是常用的分类实验数据集,由 Fisher, 1936 收集整理。Iris 也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含 150 个数据集,分为 3 类,每类 50 个数据,每个数据包含 4 个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

import matplotlib.pyplot as plt
import seaborn as sn
iris = sn.load_dataset('iris')
sn.pairplot(iris)
plt.show()

成对关系.png

热力图
热力图是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。
数据用 seaborn 中自带的 flights 航班数据,记录了 1949 年到 1960 年期间的每个月航班乘客的数量。颜色越浅表示乘客越多。

import matplotlib.pyplot as plt
import seaborn as sn

flights = sn.load_dataset("flights")
data = flights.pivot('year', 'month', 'passengers')
sn.heatmap(data)
plt.show()
热力图

饼图:饼图常用于统计学模块,用于显示各块的比例。

import matplotlib.pyplot as plt

nums = [12, 45, 29, 46, 30]
labels = ['A', 'B', 'C', 'D', 'E']

plt.pie(x=nums, labels=labels)
plt.show()
饼图

现在对比一下Matplotlib和Seaborn这两个库画图的不同之处
首先导入我们需要用到的库:

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

1.直方图:一种二维统计图表,用图形表示数据的分布情况
直方图matplotlib:

x = np.random.randn(100)
y = pd.Series(x)

plt.hist(y)
plt.show()
直方图matplotlib.png

直方图seaborn :

x = np.random.randn(200)
y = pd.Series(x)

# sn.distplot(y, kde=False)#Seaborn 画直方图,当参数 kde=False 时,和 上面 Matplotlib 画的直方图基本一样
sn.distplot(y)#当 kde 参数默认不填或者设置当参数 kde=True 时,在上图基础上,会显示核密度估计,这可以帮助我们估计概率密度。
plt.show()
默认kde.png

kde=False.png

2.条形图:条形图是用宽度相同的条形的高度或长短来表示数据多少的图形。
条形图matplotlib:

x = ["a", "b", "c", "d", "e", "f"]
y = [30, 47, 88, 25, 93, 101]

plt.bar(x, y)
plt.show()
条形图matplotlib.png

条形图seaborn :

x = ["a", "b", "c", "d", "e", "f"]
y = [30, 47, 88, 25, 93, 101]

sn.barplot(x, y)
plt.show()
条形图seaborn.png

通过生成的效果图可以看出,Seaborn 生成的条形图默认颜色不一样,视觉效果更好些。

3.折线图:可以显示随时间而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。
折线图matplotlib:

x = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
y = [50, 25, 70, 200, 170, 160, 190, 300, 320, 350]
plt.plot(x, y)
plt.show()
折线图matplotlib.png

折线图seaborn:

x = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
y = [50, 25, 70, 200, 170, 160, 190, 300, 320, 350]
df = pd.DataFrame({'x': x, 'y': y})
sn.lineplot(x="x", y="y", data=df)
plt.show()
折线图seaborn.png

这两个库的效果几乎一样,只是 seaborn 库画的图标注了 x 和 y 坐标的位置。

4.散点图:散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。
散点图matplotlib:

N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x, y, marker='x')
plt.show()
散点图matplotlib.png

散点图seaborn:

N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
df = pd.DataFrame({'x': x, 'y': y})
sn.jointplot(x="x", y="y", data=df, kind='scatter')
plt.show()
散点图seaborn.png

matplotlib库画的图默认是长方形,seaborn 库画图默认是正方形,不仅画出了散点图,还给出了他们的分布情况.

5.箱型图:是一种用作显示一组数据分散情况资料的统计图
生成 0-1 之间的 10*5 维度数据
箱型图matplotlib:

data=np.random.normal(size=(10, 5))
lables = ["a", "b", "c", "d", "e"]

plt.boxplot(data, labels=lables)
plt.show()
箱型图matplotlib.png

箱型图seaborn:

data=np.random.normal(size=(10, 5))
lables = ["a", "b", "c", "d", "e"]

df = pd.DataFrame(data, columns=lables)
sn.boxplot(data=df)
plt.show()
箱型图seaborn.png

Seaborn 生成的箱型图也是彩色的,视觉效果好。

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

推荐阅读更多精彩内容