如何在 matplotlib 中绘制我的熊猫数据框 [重复]
Posted
技术标签:
【中文标题】如何在 matplotlib 中绘制我的熊猫数据框 [重复]【英文标题】:How to plot my pandas dataframe in matplotlib [duplicate] 【发布时间】:2021-12-21 01:53:37 【问题描述】:我有以下代码:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
data = pd.read_csv("Ari_atlag.txt", sep = '\t', header = 0)
#Num_array = pd.DataFrame(data).to_numpy()
print(data.head())
data.plot()
#data.columns = ['Date', 'Number_of_test', 'Avarage_of_ARI']
#print(Num_array)
plt.show()
输出:
Date Number_of_test Avarage_of_ARI
0 2011-01 22 0.568734
1 2011-02 5 0.662637
2 2011-03 0 0.000000
3 2011-04 3 0.307692
4 2011-05 6 0.773611
Process finished with exit code 0
还有剧情。
但是在图中的这段代码中,x 轴是索引。但我想在 x 轴上获取日期。
如何用 Number_of_test 绘制日期 和 Avarage_of_ARI 的日期
我想,我应该以某种方式将字符串(日期)更改为日期,但不知道该怎么做。
最好的
【问题讨论】:
当你说“x轴不是日期,它只是索引”时,你的意思是你得到的情节,还是你想要的情节?跨度> @StuartMills 这就是我得到的,在 x 轴上我想得到日期。 这能回答你的问题吗? Matplotlib pandas plot date time 【参考方案1】:试试这个:
#Excutable example
df = pd.DataFrame("Date" : ["2011-01", "2011-02", "2011-03", "2011-04", "2011-05"],
"Number_of_test" : [22, 5, 0, 3, 6],
"Avarage_of_ARI" : [0.568734, 0.662637, 0.000000, 0.307692,
0.773611])
df.Date = pd.to_datetime(df.Date)
df = df.set_index("Date")
情节
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = [13,5]
data_ax1 = df.Number_of_test
data_ax2 = df.Avarage_of_ARI
fig, ax1 = plt.subplots()
ax1.set_ylabel('Number_of_test', color = 'tab:red')
ax1.plot(data_ax1, color = 'tab:red', linewidth= 1)
ax1.tick_params(axis = 'y',
labelcolor= 'tab:red',
length = 6,
width = 1,
grid_alpha=0.5)
ax2 = ax1.twinx()
ax2.set_ylabel('Avarage_of_ARI', color = 'tab:blue')
ax2.plot(data_ax2, color = 'tab:blue', linewidth = 1)
ax2.tick_params(axis='y', labelcolor = 'tab:blue')
fig.tight_layout()
plt.title("Plot", fontsize = 15)
结果
【讨论】:
【参考方案2】:使用x='Date'
作为plot
的参数:
df.plot(x='Date')
plt.show()
【讨论】:
【参考方案3】:如果对您的数据有效,您可以将索引设置为日期列。
cols = ['Number_of_test','Avarage_of_ARI']
data.set_index('Date', inplace = True)
for c in cols:
data[c].plot()
【讨论】:
以上是关于如何在 matplotlib 中绘制我的熊猫数据框 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Matplotlib 绘制条形图,在数据框中具有 2 列关系