首页 > 解决方案 > 如何在 matplotlib 中绘制我的熊猫数据框

问题描述

我有以下代码:

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 绘制日期

我想,我应该以某种方式将字符串(日期)更改为日期,但不知道该怎么做。

最好的

标签: pythonpandasmatplotlib

解决方案


试试这个 :

#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)

结果 在此处输入图像描述


推荐阅读