我在Pandas数据框中有以下数据:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/WEB-INF/templates/");
}
}
我有兴趣构建一个线图,以显示ABC和XYZ公司的“收入”和“利润”变量如何随着时间的推移使用 facet grid 进行演变,如下所示:
Company Date Revenue Profit
ABC 08/21/16 00:00:00 500 300
ABC 08/22/16 00:00:00 600 200
ABC 08/23/16 00:00:00 650 400
ABC 08/24/16 00:00:00 625 450
ABC 08/25/16 00:00:00 675 500
ABC 08/26/16 00:00:00 680 410
XYZ 08/21/16 00:00:00 300 290
XYZ 08/22/16 00:00:00 510 400
XYZ 08/23/16 00:00:00 490 450
XYZ 08/24/16 00:00:00 475 270
XYZ 08/25/16 00:00:00 610 500
XYZ 08/26/16 00:00:00 400 250
首先,在这种情况下,甚至可能使用facet_wrap吗?
如果是这样,那么我理解我必须使用df = pd.read_csv('C:\\Users\\Desktop\\Files\\Projections', sep = ',')
df.columns = ['Company',
'Date',
'Revenue',
'Profit']
df['Date'] = pd.to_datetime(df['Date'], errors = 'coerce')
ggplot(df, aes(x='Date')) + \
geom_line(aes(y='Revenue'), color='blue') + \
geom_line(aes(y='Profit'), color='red') + \
xlab("date") + ylab("value") + ggtitle("Projections")) + \
scale_x_date() + \
facet_wrap('Company', scales='free')
(大概是因为数据必须是'long'格式)。但是,在这一点上,我不明白为什么或为什么(即使在审查了这个问题之后:Is it possible to plot multiline chart on Python ggplot?)。
我认为可以使用:
melt
绘制“收入”和“利润”变量。但是,这会导致以下错误消息。
geom_line(aes(y='Revenue'), color='blue') + \
geom_line(aes(y='Profit'), color='red')
是否有人知道如何使用GgplotError: u'geom_line requires the following missing aesthetics: y'
解决没有?或者,如果绝对有必要使用melt
,那么在上面我提供的示例中,或许可以直截了当地确定如何做到这一点?
我一直在撞墙试图解决这个问题(甚至尝试使用Seaborn,但x轴日期有一个错误!)。非常感谢任何帮助。
我甚至愿意使用Matplotlib ......
提前致谢!