008.python科学计算库seaborn(上)


Style

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
    plt.show()

sinplot()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
    plt.show()

sns.set()
sinplot()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
    plt.show()

# Set the aesthetic style of the plots
# 5种主题风格 ###
#   darkgrid
#   whitegrid
#   dark
#   white
#   ticks
sns.set_style("whitegrid")
sinplot()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)
sns.set_style("whitegrid")
plt.show()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)
sns.set_style("white")
# 从绘图中删除顶部和右侧的刺
sns.despine()
plt.show()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)
sns.set_style("white")
# 绘制一个框图来显示与类别相关的分布
sns.violinplot(data)
# offset 原理坐標軸的點距離 
sns.despine(offset=20)
plt.show()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data,palette="deep")
sns.set_style("white")
# top, right, left, bottom : 布尔,可选
# 如果是True,把 spine(脊柱) 拿掉
sns.despine(left=True)
plt.show()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

with sns.axes_style("darkgrid"):
    # 向当前图形添加一个子图
    plt.subplot(211)
    sinplot()
plt.subplot(212)
sinplot(-1)

plt.show()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

# 设置绘图上下文参数
# 这会影响到标签、线条和其他情节元素的大小,但不会影响整体风格。
# 基本上下文是“notebook”,
# 其他上下文是“paper”、“talk”和“poster”,
# 它们分别是按0.8、1.3和1.6缩放的notebook参数的版本
sns.set_context("poster")
plt.figure(figsize=(8, 6))
sinplot()
plt.show()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

# 设置绘图上下文参数
# 这会影响到标签、线条和其他情节元素的大小,但不会影响整体风格。
# 基本上下文是“notebook”,
# 其他上下文是“paper”、“talk”和“poster”,
# 它们分别是按0.8、1.3和1.6缩放的notebook参数的版本
sns.set_context("paper")
plt.figure(figsize=(8, 6))
sinplot()
plt.show()


import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)


# 设置绘图上下文参数
# 这会影响到标签、线条和其他情节元素的大小,但不会影响整体风格。
# 基本上下文是“notebook”,
# 其他上下文是“paper”、“talk”和“poster”,
# 它们分别是按0.8、1.3和1.6缩放的notebook参数的版本
# font_scale 坐標軸上刻度數字的大小
# rc:"lines.linewidth" 线条的粗细大小
sns.set_context("paper", font_scale=2.5, rc={"lines.linewidth": 6.5})
plt.figure(figsize=(8, 6))
sinplot()
plt.show()


Color

import matplotlib.pyplot as plt
import seaborn as sns

# 返回定义调色板的颜色列表
# 6个默认的颜色循环主题: 
# deep, muted, pastel, bright, dark, colorblind
current_palette = sns.color_palette()
sns.palplot(current_palette)
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# 圆形画板
# 当你有六个以上的分类要区分时,
# 最简单的方法就是在一个圆形的颜色空间中画出均匀间隔的颜色(这样的色调会保持亮度和饱和度不变)。
# 这是大多数的当他们需要使用比当前默认颜色循环中设置的颜色更多时的默认方案。
# 最常用的方法是使用hls的颜色空间,这是RGB值的一个简单转换。
sns.palplot(sns.color_palette("hls",9))
plt.show()


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

data = np.random.normal(size=(20, 8)) + np.arange(8) / 2
sns.boxplot(data=data, palette=sns.color_palette("hls", 8))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# 函数来控制颜色的亮度和饱和
# l-亮度 lightness  s-饱和 saturation
sns.palplot(sns.hls_palette(8, l=.7, s=.9))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# color_palette 返回定义调色板的颜色列表
# palette=  None、字符串或序列、调色板的可选名称或返回当前调色板的无。
#           如果是序列,则使用输入颜色,但可能是循环的和不饱和的。
sns.palplot(sns.color_palette(palette="Paired", n_colors=11))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# 使用xkcd颜色来命名颜色
# xkcd包含了一套众包努力的针对随机RGB色的命名。
# 产生了954个可以随时通过xdcd_rgb字典中调用的命名颜色。
plt.plot([0, 1], [0, 1], sns.xkcd_rgb["pale red"], lw=3)
plt.plot([0, 1], [0, 2], sns.xkcd_rgb["medium green"], lw=3)
plt.plot([0, 1], [0, 3], sns.xkcd_rgb["denim blue"], lw=3)
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# 使用xkcd颜色来命名颜色
# xkcd包含了一套众包努力的针对随机RGB色的命名。
# 产生了954个可以随时通过xdcd_rgb字典中调用的命名颜色。
colors = ["windows blue", "amber", "greyish", "faded green", "dusty purple"]
sns.palplot(sns.xkcd_palette(colors))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# 色彩随数据变换,比如数据越来越重要则颜色越来越深
sns.palplot(sns.color_palette("Blues"))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# 如果想要翻转渐变,可以在面板名称中添加一个_r后缀
sns.palplot(sns.color_palette("Blues_r"))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# cubehelix_palette()调色板
# 色调线性变换
sns.palplot(sns.color_palette("cubehelix", 8))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# cubehelix_palette()调色板
# 色调线性变换
sns.palplot(sns.cubehelix_palette(8, start=.5, rot=-.75))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# cubehelix_palette()调色板
# 色调线性变换
sns.palplot(sns.cubehelix_palette(8, start=.75, rot=-.75))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# light_palette() 和dark_palette()调用定制连续调色板
sns.palplot(sns.light_palette("green"))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# light_palette() 和dark_palette()调用定制连续调色板
sns.palplot(sns.dark_palette("purple"))
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# light_palette() 和dark_palette()调用定制连续调色板
sns.palplot(sns.light_palette("green", reverse=True))
plt.show()


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

# light_palette() 和dark_palette()调用定制连续调色板
x, y = np.random.multivariate_normal([0, 0], [[1, -.5], [-.5, 1]], size=300).T     
pal = sns.dark_palette("green", as_cmap=True)  
# kdeplot 拟合并绘制一个单变量或双变量核密度估计
sns.kdeplot(x, y, cmap=pal)
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

# light_palette() 和dark_palette()调用定制连续调色板
sns.palplot(sns.light_palette((210, 90, 60), input="husl"))
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值