今日分享
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 | 图例显示在正中心位置 |