简体   繁体   English

如何 plot numpy arrays pandas dataframe

[英]How to plot numpy arrays in pandas dataframe

I have the DataFrame:我有 DataFrame:

df = 

sample_type         observed_data
     A          [0.2, 0.5, 0.17, 0.1]
     A          [0.9, 0.3, 0.24, 0.5]
     A          [0.9, 0.5, 0.6, 0.39]
     B          [0.01, 0.07, 0.15, 0.26]
     B          [0.08, 0.14, 0.32, 0.58]
     B          [0.01, 0.16, 0.42, 0.41]

where the data type in the observed_data column is np.array .其中observed_data列中的数据类型是np.array What's the easiest and most efficient way of plotting each of the numpy arrays overlayed on the same plot using matplotlib and/or plotly and showing A and B as separate colors or line types (eg. dashed, dotted, etc.)?使用matplotlib和/或 plotly 绘制每个 numpy arrays 覆盖在同一个 plot 和/或plotly并将 A 和 B 显示为单独的 colors 或虚线等类型的最简单和最有效的方法是什么?

You can use this...你可以用这个...

df = pd.DataFrame({'sample_type' : ['A', 'A', 'A', 'B', 'B', 'B'], 
                   'observed_data' : [[0.2, 0.5, 0.17, 0.1], [0.9, 0.3, 0.24, 0.5], [0.9, 0.5, 0.6, 0.39], 
                                      [0.01, 0.07, 0.15, 0.26], [0.08, 0.14, 0.32, 0.58], [0.01, 0.16, 0.42, 0.41]]})

for ind, cell in df['observed_data'].iteritems():
    if len(cell) > 0:
        if df.loc[ind,'sample_type'] == 'A':
            plotted = plt.plot(np.linspace(0,1,len(cell)), cell, color='blue', marker = 'o', linestyle = '-.')
        else:
            plotted = plt.plot(np.linspace(0,1,len(cell)), cell, color='red', marker = '*', linestyle = ':')
plt.show()

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM