创建线图后,matplotlib.pyplot无法创建箱形图

时间:2019-09-30 04:15:20

标签: python matplotlib

我有创建箱形图,时间序列和另一个箱形图的代码。我正在使用python 3.7.3。以下是该方案的摘要。如果我有这样的代码,请读取datasheet.csv(第一个字段为csv的{​​{1}}文件,其余字段为Datefield1等):

field2

我们正确地获得了三个数字:

Figures when box plots are done first

但是,如果我只是简单地将时间序列代码放在箱形图代码之前,那么两个箱形图都将被破坏。这就是我的代码实际的样子。上面经过此更改的相关代码如下所示:

import matplotlib.pyplot as plt
import pandas as pd

field1 = "field1"
field2 = "field2"
field3 = "field3"
field4 = "field4"
field5 = "field5"
datasheet_df = pd.read_csv("datasheet.csv")

# Make box plot 1
datasheet_df.boxplot([field1, field2], vert=False)
plt.savefig("boxplot1.png")

# Make box plot 2
datasheet_df.boxplot([field3, field4, field5], vert=False)
plt.savefig("boxplot2.png")

# Make time series
datasheet_df.plot(x='Date', y=[field1, field2])
plt.savefig("timeseries.png")

这将产生以下图像: Figures when box plots are done second

为什么会这样?有没有办法在不更改图形生成顺序的情况下正确显示箱形图?

编辑:我想对为什么我被否决表示一些反馈。只是告诉我如何改进而不是默默地删除我的修改。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用x更改默认的x='Date'轴值。当您使用datasheet_df.plot()函数的第二和第三位时,它也会自动采用x格式的Data进行其他打印。您可以通过在代码的第一部分box plot 1之后重新绘制time series来进行验证