【问题标题】:matplotlib line graph from dataframe来自数据框的matplotlib折线图
【发布时间】:2017-05-27 10:04:13
【问题描述】:

我正在尝试从具有 10488 行与 3 列的数据框在 matplotlib 中创建折线图。我的数据框如下所示:

           col_A    col_B   col_C
target_id           
KYQ35740    22.67   19.7    26.0
KYQ35675    9.21    3.2 3.1
KYQ35736    73.93   42.8    24.6
KYQ35737    349.94  602.6   212.4
KYQ35685    16.10   19.5    29.1

这里,target id 是索引。我做的试验是:

import pandas as pd 
import matplotlib.pyplot as plt 
plt.style.use('ggplot') 
%matplotlib inline

df = pd.read_csv("Data.txt", sep='\t', index_col=['target_id'])    
df.plot()

我得到一个条形图,其中 x 轴上的目标 ID 和代表每列的三个彩色条。但是,我需要对其进行转置。即 x 轴上的 col_A、col_B、col_C 标签,图中标有 10488 条贯穿系列的线。我不需要图例中的 target_ids。

我尝试用 df.T 后跟 df.plot() 转置 df。但是系统挂起,我认为是由于需要在图例中添加 10488 个标签?!

提前感谢您的帮助。

AP

【问题讨论】:

  • 抱歉,我不明白生成的情节应该是什么样子。 "with plot with 10488 lines running through series"是什么意思?据我了解,您希望在 x 轴上有三个类别 col_A、.. col_C。但是点应该如何表示呢?

标签: python-3.x matplotlib


【解决方案1】:

如果你想摆脱传说,你可以使用legend=False

import pandas as pd
import io
import matplotlib.pyplot as plt

u = u"""target_id  col_A    col_B   col_C        
KYQ35740    22.67   19.7    26.0
KYQ35675    9.21    3.2 3.1
KYQ35736    73.93   42.8    24.6
KYQ35737    349.94  602.6   212.4
KYQ35685    16.10   19.5    29.1"""

df = pd.read_csv(io.StringIO(u), delim_whitespace=True,index_col=['target_id'])
df=df.T

df.plot(legend=False)
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多