Python读取csv、xlsx文件并做柱状图

第一个函数和第四个函数是读取的csv,第二个函数和第三个函数是读取的xlsx。

import matplotlib.pyplot as plt;
import xlrd;
def pic_one():
    datas = [];
    with open('E:\\matlab\\r2019\\bin\\图像识别\\幼苗期代码\\分区\\result.csv') as fp:
        for i in range(0,26):
            data = fp.readline();
            data = data.strip();
            data = float(data);
            datas.append(data);
    #print(datas);
    x_lable = list(range(1,27));
    y_lable = datas;
    #让标题可以中文显示
    plt.rcParams['font.sans-serif'] = ['SimHei'];
    plt.rcParams['axes.unicode_minus'] = False;
    plt.title("幼苗期");
    plt.bar(x_lable,y_lable,width=0.6,color='blue');
    plt.savefig('C:\\Users\\86135\\Desktop\\pic\\pic_one.jpg');

def pic_two():
    datas = [];
    wb = xlrd.open_workbook('E:\\matlab\\r2019\\bin\\图像识别\\鳞芽及花芽分化期代码\\分区\\result.xlsx');
    sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
    rows=sheet.nrows   #获取sheet页的行数,一共有几行
    for i in range(0,rows):
        data = sheet.row_values(i);
        data = " ".join('%s' %id for id in data);
        data = float(data);
        datas.append(data);
    #print(datas);
    x_lable = list(range(1,rows+1));
    y_lable = datas;
    #让标题可以中文显示
    plt.rcParams['font.sans-serif'] = ['SimHei'];
    plt.rcParams['axes.unicode_minus'] = False;
    plt.title("鳞芽及花芽分化期");
    plt.bar(x_lable,y_lable,width=0.6,color='blue');
    plt.savefig('C:\\Users\\86135\\Desktop\\pic\\pic_two.jpg');
    
def pic_three():
    datas = [];
    wb = xlrd.open_workbook('E:\\matlab\\r2019\\bin\\图像识别\\蒜薹生长期代码\\分区\\result.xlsx');
    sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
    rows=sheet.nrows   #获取sheet页的行数,一共有几行
    for i in range(0,rows):
        data = sheet.row_values(i);
        data = " ".join('%s' %id for id in data);
        data = float(data);
        datas.append(data);
    print(datas);
    x_lable = list(range(1,rows+1));
    y_lable = datas;
    #让标题可以中文显示
    plt.rcParams['font.sans-serif'] = ['SimHei'];
    plt.rcParams['axes.unicode_minus'] = False;
    plt.title("蒜薹生长期");
    plt.bar(x_lable,y_lable,width=0.6,color='blue');
    plt.savefig('C:\\Users\\86135\\Desktop\\pic\\pic_three.jpg');
    
def pic_four():
    datas = [];
    with open('E:\\matlab\\r2019\\bin\\图像识别\\鳞茎膨大期代码\\分区\\result.csv') as fp:
        for i in range(0,109):
            data = fp.readline();
            data = data.strip();
            data = float(data);
            datas.append(data);
    #print(datas);
    x_lable = list(range(1,110));
    y_lable = datas;
    #让标题可以中文显示
    plt.rcParams['font.sans-serif'] = ['SimHei'];
    plt.rcParams['axes.unicode_minus'] = False;
    plt.title("鳞茎膨大期");
    plt.bar(x_lable,y_lable,width=0.6,color='blue');
    plt.savefig('C:\\Users\\86135\\Desktop\\pic\\pic_four.jpg');

if __name__=="__main__":
    i = input("需要做那个阶段的图");
    i = int(i);
    if i == 1:
        pic_one();
    elif i==2:
        pic_two();
    elif i==3:
        pic_three();
    elif i==4:
        pic_four();
    else:
        print("重新输入");

你可能感兴趣的:(数据分析,python)