1、条形图
条形图用于显示离散变量的值。在排名分析中,它可以用来表示不同类别的数量或平均值。使用barplot()
绘制条形图的函数,常用参数如下,
参数 | 描述 |
x | 指定数据的横轴变量 |
y | 指定数据的纵轴变量 |
hue | 在同一图中添加另一个类别维度 |
data | 要使用的数据集,通常是 pandas 的 DataFrame |
order | 控制条形的顺序 |
hue_order | 使用 hue 时控制不同 hue 类别的顺序 |
estimator | 用于聚合的统计函数,默认是平均值 |
ci | 置信区间的大小,默认是 95% |
n_boot | 计算置信区间的引导样本的数量 |
orient | 控制条形图的方向,'v' 垂直,'h' 水平 |
color | 设置所有条形的颜色 |
palette | 为不同的类别指定不同的颜色 |
saturation | 设置颜色的饱和度 |
errcolor | 错误条的颜色 |
errwidth | 错误条的宽度 |
capsize | 错误条两端的横杠大小 |
dodge | 使用 hue 时,控制条形是否应该分开 |
使用示例:
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 生成示例数据集 tips = pd.DataFrame({ 'total_bill': [16.99, 10.34, 21.01, 23.68, 24.59], 'tip': [1.01, 1.66, 3.50, 3.31, 3.61], 'sex': ['Female', 'Male', 'Male', 'Male', 'Female'], 'smoker': ['No', 'Yes', 'No', 'Yes', 'No'], 'day': ['Sun', 'Thur', 'Sat', 'Sun', 'Fri'], 'size': [2, 3, 3, 2, 4] }) # 设置 seaborn 样式 sns.set(style="whitegrid") sns.barplot(x="day", y="total_bill", hue="sex", data=tips, order=["Thur", "Fri", "Sat", "Sun"], hue_order=["Female", "Male"], estimator=sum, ci=95, n_boot=1000, orient="v", color="blue", palette="deep", saturation=0.5, errcolor="gray", errwidth=1, capsize=0.1, dodge=True) # 添加图表标题和标签 plt.title('cjavapy') plt.draw() # 展示图表 plt.show()
2、计数图
计数图是条形图的一个特例,用于显示每个类别的观察数量。使用 countplot()
绘制计数图用于显示类别变量中每个类别的观察数量。常用参数如下,
参数名称 | 描述 |
data | 输入数据,可以是 DataFrame、数组、列表等。 |
x, y | 数据中的变量,用于沿 x 轴或 y 轴绘制计数。 |
hue | 分类变量名,用于数据分组,以不同颜色区分。 |
order | 控制主分类的顺序。 |
hue_order | 控制 hue 分类的顺序。 |
orient | 设置图的方向,"v" 为垂直,"h" 为水平。 |
color | 设置所有条形的颜色。 |
palette | 设置不同的颜色,常用于 hue 参数。 |
saturation | 调整颜色的饱和度。 |
dodge | 设置条形是否分开或堆叠,用于 hue 参数。 |
ax | 指定在哪个 matplotlib 的 Axes 对象上绘图。 |
kwargs | 传递给底层 matplotlib 函数的其他关键字参数,用于自定义图表。 |
使用示例:
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd import numpy as np # 创建示例数据 np.random.seed(0) data = pd.DataFrame({ 'Fruit': np.random.choice(['Apple', 'Banana', 'Orange', 'Grapes'], size=100), 'Gender': np.random.choice(['Male', 'Female'], size=100) }) # 创建 countplot plt.figure(figsize=(10, 6)) sns.countplot( data=data, x='Fruit', hue='Gender', order=['Apple', 'Banana', 'Orange', 'Grapes'], # 控制主分类的顺序 hue_order=['Male', 'Female'], # 控制hue分类的顺序 orient='v', color='blue', palette='Set1', # 颜色板 saturation=0.8, dodge=True # 分开显示每个 hue 类别 ) # 添加标题 plt.title('cjavapy') plt.draw() plt.show()
3、线图
数据点是连续的或有时间序列时,线图是一个好选择。它可以展示趋势和排名的变化。使用lineplot()
是 Seaborn 中用于绘制线性数据的一个非常有用的函数。常用参数如下,
参数 | 描述 |
data | DataFrame、数组或列表类型的数据集 |
x | 指定数据集中用于横轴的变量 |
y | 指定数据集中用于纵轴的变量 |
hue | 数据的分类变量名称,用于颜色区分 |
style | 数据的分类变量名称,用于线条样式 |
size | 数据的分类变量名称,用于线条粗细 |
palette | 设置线条颜色 |
markers | 是否在每个数据点处显示标记 |
dashes | 是否为不同的类使用不同的线型 |
estimator | 控制每个 x 值点处 y 值的估计方式 |
ci | 控制置信区间的大小 |
errorbar | 错误条形式 |
n_boot | 计算置信区间时的引导样本数量 |
使用示例:
import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt # 生成示例数据 np.random.seed(0) dates = pd.date_range('20210101', periods=100) data = pd.DataFrame({ 'Date': dates, 'Value': np.random.randn(100).cumsum(), 'Category': np.random.choice(['A', 'B', 'C'], 100) }) # 绘制线图 sns.set_theme(style="whitegrid") lineplot = sns.lineplot( x='Date', y='Value', hue='Category', style='Category', markers=True, dashes=False, data=data ) # 设置图表标题和标签 lineplot.set_title('cjavapy') lineplot.set_xlabel('Date') lineplot.set_ylabel('Value') # 显示图表 sns.despine() plt.draw() plt.show()