Python图表自定义设置

2021-02-22 15:12:48 浏览数 (1)

今日分享

Python图表自定义设置

阅读本文大概约5分钟

barplot用法详情

代码语言:javascript复制
#语法
seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,
                estimator=<function mean>,ci=95, n_boot=1000, units=None, orient=None,
                color=None, palette=None, saturation=0.75,
                errcolor='.26', errwidth=None, capsize=None, dodge=True, ax=None, **kwargs)
#说明:
x、y、hue:data中用于绘制图表的变量名
data:< DataFrame, 数组, 数组列表 >是用于绘图的数据集
order、hue_order:< 字符串列表 >绘制类别变量的顺序
estimator:< 映射向量 -> 标量 >统计函数用于估计每个分类中的值
ci:< float or “sd” or None >估计值周围的置信区间大小。若输入的是sd,会跳过bootstrapping的过程,只绘制数据的标准差;
若输入的是None,不会执行bootstrapping,而且错误条也不会绘制。
n_boot:< int >计算置信区间需要的 Boostrap 迭代次数。
orient:< “v” 或 “h” >绘图的方向(垂直或水平)。
color:< matplotlib color >作用于所有元素的颜色,或者渐变色的种子。
palette:< palette name, list, or dict  >不同级别的 hue 变量的颜色。
saturation:< float >原始饱和度与绘制颜色的比例。大的色块通常在稍微不饱和的颜色下看起来更好,但是如果希望打印颜色与输入颜色规格完全匹配,请将其设置为1。
errcolor:< matplotlib color >表示置信区间的线的颜色。
errwidth:< float >误差条的线的厚度。
capsize:< float >误差条端部的宽度。
dodge : < 布尔型 >当使用色调嵌套时,元素是否应该沿分类轴移动。
ax:< matplotlib Axes >指定一个 Axes 用于绘图,如果不指定,则使用当前的 Axes。
kwargs:< key, value mappings >其他的关键词参数在绘图时通过 plt.bar 传入。

实例

代码语言:javascript复制
#导入数据集
import seaborn as sns
import pandas as pd
tips=sns.load_dataset("tips")
tips
#原生包调用
sns.barplot(x="sex",y="total_bill",hue="day",data=tips,ci="sd",palette="Set1",capsize=.01,order=["Male","Female"])
sns.set(style='whitegrid')
代码语言:javascript复制
###自定义图表,得到一张更漂亮正式的图!
import numpy as np
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

plt.rcParams['axes.unicode_minus'] = False    # 设置显示负号
plt.rcParams["font.sans-serif"]='SimHei'  #解决中文乱码问题
%config InlineBackend.figure_format='svg'   #显示更清晰

# seaborn有五种预设样式,darkgrid(灰色网格)、whitegrid(白色网格)、dark(灰色)、white(白色)、ticks(带刻度线),系统默认(darkgrid)
with sns.axes_style("ticks"):

    plt.figure(figsize=(,), dpi= )
    color=["blue","darkorange","red","purple"]
    sns.barplot(x="sex",y="total_bill",hue="day",data=tips,ci="sd",palette=color,capsize=.01,order=["Male","Female"])
    labels =["星期四","星期五","星期六","星期日"]
    patches = [ mpatches.Patch(color=color[i], label="{:s}".format(labels[i])) for i in range(len(color)) ] 
    plt.legend(handles=patches,loc=)
    x=np.array([,])
    plt.xlabel("")
    plt.xticks(x,["男性","女性"],size = )

    plt.ylabel("小费($)",fontsize=)
    plt.yticks(np.arange(,,),fontproperties = 'Times New Roman',size = )

图例位置设置

字符串

位置代码

说明

best

0

自动选择合适位置展示

upper right

1

图例显示在右上角

upper left

2

图例显示在左上角

lower left

3

图例显示在右下角

lower right

4

图例显示在左下角

right

5

图例显示在右侧

center left

6

图例显示在左侧中心位置

center right

7

图例显示在右侧中心位置

lower center

8

图例显示在底部中心位置

upper center

9

图例显示在顶部中心位置

center

10

图例显示在正中心位置

0 人点赞