fig = px.box(train_public, x="work_year", y="monthly_payment", color="isDefault", notched=True) fig.show()改成matplotlib.pyplot下画出来的图
时间: 2023-07-06 19:14:41 浏览: 70
可以使用 Matplotlib 库中的 boxplot 函数来画箱线图,具体代码如下:
```
import matplotlib.pyplot as plt
# 按照 work_year 分组,并将每组的 monthly_payment 存入一个列表中
grouped = train_public.groupby('work_year')['monthly_payment'].apply(list)
# 将列表转换为 numpy 数组
data = grouped.values
# 设置图形参数
fig, ax = plt.subplots(figsize=(8, 6))
ax.set_xlabel('work_year')
ax.set_ylabel('monthly_payment')
ax.set_title('Boxplot')
# 绘制箱线图
bp = ax.boxplot(data, notch=True, sym='o', vert=True, patch_artist=True)
# 设置每个箱子的颜色
colors = ['#78C850', '#F08030']
for patch, color in zip(bp['boxes'], colors):
patch.set_facecolor(color)
# 设置每个箱子的边框颜色
for box in bp['boxes']:
box.set(edgecolor='black', linewidth=1.2)
# 设置中位线、上下四分位数、异常值的颜色
for median in bp['medians']:
median.set(color='black', linewidth=1.2)
for whisker in bp['whiskers']:
whisker.set(color='black', linewidth=1.2)
for cap in bp['caps']:
cap.set(color='black', linewidth=1.2)
for flier in bp['fliers']:
flier.set(marker='o', color='black', alpha=0.5)
# 设置 x 轴刻度和标签
ax.set_xticklabels(grouped.index)
ax.set_xticks(range(1, len(grouped)+1))
# 显示图形
plt.show()
```
这段代码将训练集 `train_public` 按照 `work_year` 列进行分组,并将每组的 `monthly_payment` 存入一个列表中,然后使用 Matplotlib 库的 `boxplot` 函数绘制箱线图。其中,`notch=True` 表示在箱体中绘制凹口,`sym='o'` 表示绘制异常值的形状为圆形,`patch_artist=True` 表示可以填充箱体颜色。最后,使用 Matplotlib 库的函数设置每个箱子的颜色、边框颜色、中位线、上下四分位数、异常值的颜色,并设置 x 轴刻度和标签。
阅读全文