虽然看起来并不那么困难,但对于我的一生,我无法弄清楚。任何帮助将不胜感激。这是我的情况:
我有一个数据框df1,其中包含日期和价格。我可以使用此数据通过matplotlib.pyplot绘制图形。到目前为止很好。
我有另一个数据框df2,它再次包含日期和价格信息,但只包含6行。现在,我需要获取df2的前两行,并将其视为两个点(x轴为Date,y轴为Price),然后将它们连接到上面绘制的图形上。与接下来的两行相同,依此类推。 (df2中将有更多行,但我希望您能得到满意的结果)。
我试图在两个df上一个又一个地调用plot()-结果是,当调用df2.plot()时,使用df1.plot()绘制的图形将被擦除,并绘制df2线。
答案 0 :(得分:2)
df = pd.read_csv(r'https://vincentarelbundock.github.io/Rdatasets/csv/fpp2/goog200.csv', index_col=0)
df2 = df.loc[[57, 98, 169]]
plt.plot(df['time'], df['value'])
plt.plot(df2['time'], df2['value'])
plt.show()
(在OP的注释中注明user23564的链接答案)
df = pd.read_csv(r'https://vincentarelbundock.github.io/Rdatasets/csv/fpp2/goog200.csv', index_col=0)
df2 = df.loc[[57, 98, 169, 200]].reset_index()
plt.plot(df['time'], df['value'])
for i in range(0, len(df2), 2):
plt.plot(df2.loc[i:i+1, 'time'], df2.loc[i:i+1, 'value'], c='grey')
plt.show()
答案 1 :(得分:-1)
这是一个示例,摘自https://python-graph-gallery.com/122-multiple-lines-chart/:
它在同一张图表中绘制了几条线。
# libraries
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# Data
df=pd.DataFrame({'x': range(1,11), 'y1': np.random.randn(10), 'y2': np.random.randn(10)+range(1,11), 'y3': np.random.randn(10)+range(11,21) })
# multiple line plot
plt.plot( 'x', 'y1', data=df, marker='o', markerfacecolor='blue', markersize=12, color='skyblue', linewidth=4)
plt.plot( 'x', 'y2', data=df, marker='', color='olive', linewidth=2)
plt.plot( 'x', 'y3', data=df, marker='', color='olive', linewidth=2, linestyle='dashed', label="toto")
plt.show()