首页 > 解决方案 > 从excel和python绘制的图表有什么区别?

问题描述

使用 pandas 加载文本文件,并为选定的两列绘制图形(在pd.read_csv命令行中提到)

文本文件在这里

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

files=sorted(glob.glob(r"adress of folder containing text files\*.txt")) 
T_raise= pd.read_csv(files[1],delimiter=',',skiprows=1,index_col=False,usecols= 
["COLUMN A","COLUMN B"])
t=T_raise.iloc[1:6900,0]
T=T_raise.iloc[1:6900,1]
plt.plot(t.values,T.values) 

从 python 和 excel 获得的图是不同的,Python 显示的是不正确的线性图(请在链接中找到从 excel 绘制的图的 png)

标签: pythonpandas

解决方案


通过使用缓冲 csv 文件,解决了上述减速问题

zip(t,T)
    with open('text.csv', 'w') as f:
        writer = csv.writer(f, delimiter='\t')
        writer.writerows(zip(t,T))

获取图形的值,

# lines can be used for reading the different text files with similar number of columns, and getting graphs for selected columns and plotting them together in one figure 
import matplotlib
import pandas as pd
import matplotlib.pyplot as plt
import csv
import glob
i=0;
files= sorted (glob.glob('<address of the text files there in link shared in question above\*.txt')) 
nof = len(files)
for i in range(0,nof):
    T_raise= pd.read_csv(files[i],delimiter=',',skiprows=1,index_col=False,usecols=["column A","Column B"], header=0)

    t=T_raise.iloc[1:len(T_raise)-1,0]
    T=T_raise.iloc[1:len(T_raise)-1,1]
    zip(t,T)
    with open('text.csv', 'w') as f:
        writer = csv.writer(f, delimiter='\t')
        writer.writerows(zip(t,T))
        T2_raise=pd.read_csv('text.csv',delimiter='\t',header=0)
        t2=T2_raise.iloc[1:len(T2_raise)-1,0]
        T2=T2_raise.iloc[1:len(T2_raise)-1,1]
        plt.plot(t2,T2)     

建议有没有更好的方法,谢谢


推荐阅读