我想比较数据框中的数据,将一些数据绘制为线,将其他列绘制为散点图。我的实际数据是模型输出和观察的组合,我希望观察是散点,模型是线。
观察值有很多 Nan 值(大多数时间步骤没有观察值)。
这个 MWE 重复了我遇到的问题
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
base = datetime.datetime.today()
date_list = [base - datetime.timedelta(days=x) for x in range(40)]
df = pd.DataFrame(data = {
"Time": date_list,
"Chocolate": np.random.rand(40),
"Strawberry": np.random.rand(40),
"Fake Chocolate": np.random.rand(40),
"Fake Strawberry": np.random.rand(40),
})
df.iloc[3,3] = np.nan
ax1 = df.plot(x = 'Time', y = ["Chocolate","Strawberry"])
ax1 = df.plot(x = 'Time', y = ["Chocolate","Strawberry"])
ax2 = df.plot.scatter(x = 'Time', y = ['Fake Chocolate'], marker = '^', ax = ax1)
ax3 = df.plot.scatter(x = 'Time', y = ['Fake Strawberry'], marker = '*', ax = ax1, color = '#ff7f0e')
我想要像第一个图中那样的 x 轴,所以采用线图的样式,你没有每个日期都试图在一个很小的空间中打印。我该怎么做呢?
我正在使用ax1.set
来设置 x 和 y 轴标签。
如果我可以偷偷提出第二个问题,为什么可以使用散点图y = []
而不是散点图来做多条线?
饮歌长啸
相关分类