使用Pandas,Matplotlib和Numpy绘制2D数组

326

作为模拟的结果,我使用Pandas解析了输出groupby()我在按所需方式绘制数据时遇到了一些困难。这是我要绘制的Pandas输出文件(为简单起见被抑制):

                 Avg-del   Min-del    Max-del Avg-retx  Min-retx    Max-retx
Prob Producers 
0.3  1           8.060291  0.587227  26.709371  42.931779  5.130041  136.216642  
     5           8.330889  0.371387  54.468836  43.166326  3.340193  275.932170  
     10          1.012147  0.161975   4.320447   6.336965  2.026241   19.177802  
0.5  1           8.039639  0.776463  26.053635  43.160880  5.798276  133.090358  
     5           4.729875  0.289472  26.717824  25.732373  2.909811  135.289244  
     10          1.043738  0.160671   4.353993   6.461914  2.015735   19.595393

我的y轴是延迟,我的x轴是生产者的数量。我想为概率设置误差线,为设置p=0.3另一个误差线p=0.5我的python脚本如下:

import sys
import time
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.expand_frame_repr', False)

outputFile = 'averages.txt'
f_out = open(outputFile, 'w')

data = pd.read_csv(sys.argv[1], delimiter=",")
result = data.groupby(["Prob", "Producers"]).mean()

print "Writing to output file: " + outputFile
result_s = str(result)
f_out.write(result_s)
f_out.close()

*** Update from James ***
for prob_index in result.index.levels[0]:
r = result.loc[prob_index]  
labels = [col for col in r]
lines = plt.plot(r)
[line.set_label(str(prob_index)+" "+col) for col, line in zip(labels, lines)]
ax = plt.gca()
ax.legend()
ax.set_xticks(r.index)
ax.set_ylabel('Latency (s)')
ax.set_xlabel('Number of producer nodes')

plt.show()

现在,我有4个切片的数组,每种概率一个。如何基于delay(del)和retx再次对其进行切片,并基于ave,min,max绘制误差线?

詹姆士

好的,这里发生了很多事情。首先,它绘制了6条线。当您的代码调用

plt.plot(np.transpose(np.array(result)[0:3, 0:3]), label = 'p=0.3')
plt.plot(np.transpose(np.array(result)[3:6, 0:3]), label = 'p=0.5')

它正在调用plt.plot3x3数据数组。plt.plot将此输入解释为不是x和y,而是解释为3个单独的y值序列(每个具有3个点)。对于x值,它将插值0,1,2。换句话说,它是第一个plot调用,它正在绘制数据:

x = [1,2,3]; y = [8.060291, 8.330889, 1.012147]
x = [1,2,3]; y = [0.587227, 0.371387, 0.161975]
x = [1,2,3]; y = [26.709371, 54.468836, 4.320447]

根据您的x标签,我认为您希望这些值为x = [1,5,10]尝试此操作以查看是否获得所需的绘图。

# iterate over the first dataframe index
for prob_index in result.index.levels[0]:
    r = result.loc[prob_index]
    labels = [col for col in r]
    lines = plt.plot(r)
    [line.set_label(str(prob_index)+" "+col) for col, line in zip(labels, lines)]
    ax = plt.gca()
    ax.legend()
    ax.set_xticks(r.index)
    ax.set_ylabel('Latency (s)')
    ax.set_xlabel('Number of producer nodes')  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

matplotlib创建无框架,无轴的图形,使用色图绘制2D数组,将图形保存为与输入大小相同的numpy数组

来自分类Dev

在Python中使用matplotlib和带有numpy的数组绘制3D点

来自分类Dev

如何使用matplotlib在Python中绘制2D数组图

来自分类Dev

使用numpy.histogram2d和matplotlib绘制二维直方图时遇到麻烦

来自分类Dev

使用x,y和笛卡尔积数组绘制2D直方图。(Python)

来自分类Dev

在matplotlib中分散2D numpy数组

来自分类Dev

如何使用广播和/或numpy函数计算2D numpy数组的均值?

来自分类Dev

NumPy:数组和标量列表中的2D数组

来自分类Dev

在Java中使用2D数组绘制数字钻石

来自分类Dev

在C中使用动态2D数组绘制网格

来自分类Dev

在matplotlib中绘制2D函数

来自分类Dev

带有2D值和索引数组的numpy 2D数组分配

来自分类Dev

在 3D 空间中绘制 (x,y,z) 点的 2D 数组 (Matplotlib)

来自分类Dev

使用numpy和swig将2d数组作为参数传递给函数

来自分类Dev

使用2d数组将3d numpy数组转换为1列pandas df

来自分类Dev

numpy:使用2D索引数组进行2D数组访问

来自分类Dev

如何使用numpy在现有2D数组中添加2D子数组?

来自分类Dev

numpy:使用2D索引数组进行2D数组访问

来自分类常见问题

使用pandas和matplotlib绘制分类数据

来自分类Dev

使用pandas和matplotlib绘制多条线图

来自分类Dev

使用pandas和matplotlib绘制多条线图

来自分类Dev

使用 pandas 和 matplotlib 绘制宽数据

来自分类Dev

如何使用Numpy重复此2d对数组?

来自分类Dev

使用附加函数创建2D numpy数组

来自分类Dev

如何使用numpy计算2d数组的“最大遮罩”

来自分类Dev

使用 numpy 避免在 2D 数组上循环

来自分类Dev

如何获得向量。从使用 argmax 的 2D numpy 数组?

来自分类Dev

matplotlib绘制numpy数组和其他东西

来自分类Dev

使用python和matplotlib的2D热图

Related 相关文章

  1. 1

    matplotlib创建无框架,无轴的图形,使用色图绘制2D数组,将图形保存为与输入大小相同的numpy数组

  2. 2

    在Python中使用matplotlib和带有numpy的数组绘制3D点

  3. 3

    如何使用matplotlib在Python中绘制2D数组图

  4. 4

    使用numpy.histogram2d和matplotlib绘制二维直方图时遇到麻烦

  5. 5

    使用x,y和笛卡尔积数组绘制2D直方图。(Python)

  6. 6

    在matplotlib中分散2D numpy数组

  7. 7

    如何使用广播和/或numpy函数计算2D numpy数组的均值?

  8. 8

    NumPy:数组和标量列表中的2D数组

  9. 9

    在Java中使用2D数组绘制数字钻石

  10. 10

    在C中使用动态2D数组绘制网格

  11. 11

    在matplotlib中绘制2D函数

  12. 12

    带有2D值和索引数组的numpy 2D数组分配

  13. 13

    在 3D 空间中绘制 (x,y,z) 点的 2D 数组 (Matplotlib)

  14. 14

    使用numpy和swig将2d数组作为参数传递给函数

  15. 15

    使用2d数组将3d numpy数组转换为1列pandas df

  16. 16

    numpy:使用2D索引数组进行2D数组访问

  17. 17

    如何使用numpy在现有2D数组中添加2D子数组?

  18. 18

    numpy:使用2D索引数组进行2D数组访问

  19. 19

    使用pandas和matplotlib绘制分类数据

  20. 20

    使用pandas和matplotlib绘制多条线图

  21. 21

    使用pandas和matplotlib绘制多条线图

  22. 22

    使用 pandas 和 matplotlib 绘制宽数据

  23. 23

    如何使用Numpy重复此2d对数组?

  24. 24

    使用附加函数创建2D numpy数组

  25. 25

    如何使用numpy计算2d数组的“最大遮罩”

  26. 26

    使用 numpy 避免在 2D 数组上循环

  27. 27

    如何获得向量。从使用 argmax 的 2D numpy 数组?

  28. 28

    matplotlib绘制numpy数组和其他东西

  29. 29

    使用python和matplotlib的2D热图

热门标签

归档