基于列打印

2024-04-19 05:01:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这个数据集(panda-df),好多个,但这是结构。你知道吗

 Replication                   State Machine  Average Time  Std. Percent
          1                    IDLE    bend        1.0863         68.42
          1  State Bend real failur    bend       19.7653          8.24
          1                    BUSY    bend        0.3144         19.88
          1   State Bend Die change    bend       25.0000          3.47
          2   State Bend Die change    bend       25.0000          3.47
          2  State Bend real failur    bend       20.4153          6.88
          2                    BUSY    bend        0.3058         19.93
          2                    IDLE    bend        1.0742         69.73
          3                    IDLE    bend        1.0803         69.25
          3   State Bend Die change    bend       25.0000          3.47
          3  State Bend real failur    bend       19.4699          7.23
          3                    BUSY    bend        0.3117         20.04

我想做的是做4个直方图(每个州一个)。我想在x轴上有复制,在y轴上有'Std.Percent'或'Average Time'的值。有没有人能给我们一些关于这一点的见解?你知道吗

这是我到目前为止做的代码,我没有做任何循环,因为我想让它与一个工作,然后我可以循环所有的后记

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('frequencies50cleaned.csv', sep=',')
data.columns= ['Replication', 'State', 'Machine', 'Average Time','Std. Percent']


bend = data[data['Machine'] == 'bend']
punch = data[data['Machine'] == 'punch']
form = data[data['Machine'] == 'form']
shear = data[data['Machine'] == 'shear']

bend = bend.sort(columns='Replication')
x = bend[bend['State'] == 'IDLE']['Replication']
y = bend[bend['State'] == 'IDLE']['Std. Percent']

punch = punch.sort(columns='Replication')
z = punch[punch['State'] == 'IDLE']['Replication']
p = punch[punch['State'] == 'IDLE']['Std. Percent']

bend.hist(column=['Replication'])
#plt.clf()
#plt.plot(x,y)
#plt.plot(z,p)
#plt.show()

Tags: datatimepltmachinerealstdstateaverage
1条回答
网友
1楼 · 发布于 2024-04-19 05:01:11

所以我得到了密码。我会把它贴在这里,希望其他人可以利用它:-)

作为pd导入 导入matplotlib.pyplot文件作为plt 将numpy作为np导入

# Prefix for the scenario
scen_name = "scenario1"

# Importing the Data
data = pd.read_csv(scen_name+'_frequencies50limcleaned.csv', sep=',')
data.columns= ['Replication', 'State', 'Machine', 'Average Time','Std. Percent']

# Conforming the data
data.State = data.State.replace('State Bend Blocked', 'Blocked')
data.State = data.State.replace('State Punch Blocked', 'Blocked')
data.State = data.State.replace('State Shear Blocked', 'Blocked')
data.State = data.State.replace('State Form Blocked', 'Blocked')

data.State = data.State.replace('State Bend real failur', 'Real Failure')
data.State = data.State.replace('State Punch real failur', 'Real Failure')
data.State = data.State.replace('State Shear real failur', 'Real Failure')
data.State = data.State.replace('State Form real failur', 'Real Failure')

data.State = data.State.replace('State Bend Die change', 'Die Change')
data.State = data.State.replace('State Punch Die change', 'Die Change')
data.State = data.State.replace('State Shear Die change', 'Die Change')
data.State = data.State.replace('State Form Die change', 'Die Change')

# Splitting data on machine
bend = data[data['Machine'] == 'bend']
punch = data[data['Machine'] == 'punch']
form = data[data['Machine'] == 'form']
shear = data[data['Machine'] == 'shear']

report_vals = ['Average Time', 'Std. Percent']
states = ['IDLE', 'BUSY', 'Blocked']
post_fixes = ['avg_time', 'percent']
titles = ['Average time in state: ','Frequencies of in percent: ']

i = 0
for rep in report_vals:
    for state in states:
        bend = bend.sort_values('Replication')
        x = bend[bend['State'] == state]['Replication']
        punch = punch.sort_values('Replication')
        y = punch[punch['State'] == state]['Replication']
        form = form.sort_values('Replication')
        z = form[form['State'] == state]['Replication']
        shear = shear.sort_values('Replication')
        w = shear[shear['State'] == state]['Replication']

        b = bend[bend['State'] == state][rep]
        p = punch[punch['State'] == state][rep]
        f = form[form['State'] == state][rep]
        s = shear[shear['State'] == state][rep]

        fig, ax = plt.subplots()

        rects1 = plt.plot(x,b,'b',
                         label='Bend')

        rects2 = plt.plot(y,p,'g',
                         label='Punch')

        rects3 = plt.plot(z,f,'r',
                         label='Form')

        rects4 = plt.plot(w,s,'y',
                         label='Shear')

        plt.xlabel('Replication')
        plt.ylabel(rep)
        plt.title(titles[i]+state)
        plt.legend()

        plt.tight_layout()
        plt.savefig('/home/misterwhite/Dropbox/Aarhus Universitet/8. Semester/Modellering, simulation og analyse/Arena Project/Report/images/'+scen_name+'_'+state+'_'+post_fixes[i]+'.png')
    i +=1

相关问题 更多 >