当前位置: 首页 > 知识库问答 >
问题:

如何在matplotlib[duplicate]中绘制我的熊猫数据帧

邹祺
2023-03-14

我有以下代码:

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轴上的日期。

如何使用测试的编号和ARI的平均值绘制日期

我想,我应该把字符串(日期)改成日期,但我不知道怎么做。

最好的

共有3个答案

贺宏富
2023-03-14

如果对数据有效,可以将索引设置为日期列。

cols = ['Number_of_test','Avarage_of_ARI']

data.set_index('Date', inplace = True)

for c in cols:
    data[c].plot()
濮金鑫
2023-03-14

试试这个:

#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)
刘玉石
2023-03-14

使用x='Date'作为的参数:

df.plot(x='Date')
plt.show()
 类似资料:
  • 问题内容: 我有一个固定宽度的数据文件,其中包含日期,但是当我尝试绘制数据时,日期无法在x轴上正确显示。 我的档案看起来像 等等 我用 熊猫 读文件 所以我想这里的问题是从熊猫到matplotlib日期时间的转换,如何进行转换? 我也直接尝试了熊猫: 但这失败了 TypeError:空的“ Series”:没有要绘制的数字数据 问题答案: 如果您使用包含列名而不是字符串的列表,则data.set_

  • 我有这个熊猫数据框 这就给了我: 我该怎么办 做一个新的人物, 将标题添加到图"标题这里" 以某种方式创建一个映射,这样标签不是29,30等,而是“29周”,“30周”等。 将图表的较大版本保存到我的计算机(例如10 x 10英寸) 这件事我已经琢磨了一个小时了!

  • 我有这种熊猫。数据框。“a”、“b”是获得“x”和“y”时的条件。 我需要绘制关于相同条件的(x,y)结肠的折线图。预期结果图为: 当然,这个图像是由以下代码手动给出的: 我的问题是,当获得一个包含条件列x和y的数据帧时,如何动态地绘制如上所述的图。 列名是固定的。但是,条件列的值是动态更改的。因此,我不能使用10、20、100、200的值。 如果我有下面的“用a和b过滤”方法,我认为问题解决了:

  • 问题内容: 我的数据是: 是使用转换的字符串。 这样的情节非常前卫(这些不是我的实际情节): 我如何像这样平滑它: 我知道本文中提到的内容(这是我从中获取图像的地方),但是如何将其应用于熊猫时间序列? 我发现了一个名为Vincent的很棒的库,它可以处理Pandas,但它不支持Python 2.6。 问题答案: 得到它了。在这个问题的帮助下,我做了以下工作: 从几分钟到几秒重新采样。 \ >>>

  • 问题内容: 当从父数据帧中选择子数据帧时,我注意到有些程序员使用该方法复制数据帧。例如, …而不只是 他们为什么要复制数据框?如果我不复制怎么办? 问题答案: 这扩展了保罗的答案。在Pandas中,为DataFrame编制索引将返回对初始DataFrame的引用。因此,更改子集将更改初始DataFrame。因此,如果要确保不更改初始DataFrame,则需要使用该副本。考虑以下代码: 你会得到:

  • 到目前为止,它正确地显示了一个图形,但是我如何才能获得显示在每个条上方或上的确切数值呢?我尝试过引用它,但它似乎不适用于数据框。