如何在 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 列关系

在 matplotlib 中绘制熊猫日期

如何使用点绘制熊猫数据框的两列

如何将熊猫数据框中每列中唯一值的数量绘制为条形图?

如何在 matplotlib 上绘制散点趋势线? Python-熊猫

Matplotlib 绘制 2D 形状而不是 1D 线 [重复]