python读取csv并生成图片

import csv
import cv2 as cv
import numpy as np


filePath = 'F:/zhengwangwork/test csv/11.csv'
# filePath = input("请输入处理文件存放的位置:")
def readcsv():
    # file = open("D:/Work/csv/31.csv")
    # filename=input("请输入要读取文件路径:")
    file = open("F:/csvFile/2.csv")
    # file = open(filename)
    reader = csv.reader(file)
    data = []
    data1 = []
    data2 = []
    data3 = []
    data4 = []
    data5 = []
    a = []
    # 读取文件数据列
    for row in reader:
        # column = eval(row[0])
        column = row[0]
        # min=min(column)
        column1 = row[1]
        column2 = row[2]
        column3 = row[3]
        column4 = row[4]
        column5 = row[5]

        data.append(column)
        data1.append(column1)
        data2.append(column2)
        data3.append(column3)
        data4.append(column4)
        data5.append(column5)
    # 求取第一列的最小值并相减输出
    q = min(data)
    data = [eval(i) - eval(q) for i in data]
    # print(data)
    # 将数据列重新写入csv文件中
    # filePath = 'F:/zhengwangwork/test csv/6.csv'
    rows = zip(data, data1, data2, data3, data4, data5)
    with open(filePath, "w", newline='') as f:
        writer = csv.writer(f)
        for row in rows:
            writer.writerow(row)

def drawpicture():
    # (233,1600,3)分别是宽、高、通道数
    canvas = np.zeros((233, 1600, 3), dtype=np.uint8) + 255
    file = open(filePath)  # 打开csv文件
    reader = csv.reader(file)  # 读取csv文件
    data = list(reader)  # 将csv数据转化为列表
    length_h = len(data)  # 得到数据行数
    lenght_l = len(data[0])  # 得到每行长度
    x = list()
    y = list()
    z = list()
    # 绘制散点图
    for i in range(0, length_h):  # 从第一行开始读取
        x.append(int(eval(data[i][0])))  # 将第一列数据从第一行读取到最后一行付给列表x
        y.append(eval(data[i][2]))  # 将第三列数据从第一行读取到最后一行付给列表y
        z.append(eval(data[i][1]))
    pts = zip(x, y)
    col = []
    dict = {"0":(0,255,255), "1": (0,0,255), "2": (255,192,255),"3": (255,127,255), "4": (255,64,255),
            "5": (127,255,0),
            "6": (127,0,255), "7": (64,0,255), "8": (0,255,0), "9": (0,127,0), "10": (255,192,0),
            "11": (255,127,0), "12": (255,64,0), "13": (127,55,255), "14": (127,0,0), "15": (64,0,0),
            "16": (0,0,127), "17": (255,0,255), "18":( 255,0,0)," 19": (127,240,0), "20": (127,240,255),
            "21": (255,15,255), "22": (255,15,0), "23": (0,0,120), "24": (255,255,255), "25": (255,255,0),
           " 26": (255,240,255), "27": (255,240,0)}
    # print(dict["0"])
    # # 通过循环将不同的通道值对应的颜色加到col数组中,其中data1就是db数组
    for i in range(0, len(z)):
        col.append(dict[str(z[i])])
    i = 0
    # 画出每个点,颜色随机
    for pt in pts:
        print(pt)
        cv.circle(canvas, pt, 2, col[i],-1)
        i = i + 1
    # 展示绘制的图形
    cv.namedWindow('Basic Graph', cv.WINDOW_NORMAL)
    cv.imshow('Basic Graph', canvas)
    # 保存绘制的图像
    cv.imwrite('Basic_Graph.png', canvas)
    cv.waitKey()

if __name__ == '__main__':
    readcsv()
    drawpicture()

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python调用csv生成图片,你可以使用csv模块来读取csv文件中的数据,并使用matplotlib库来绘制图形。 首先,你需要导入csv和matplotlib库: ```python import csv import matplotlib.pyplot as plt ``` 然后,你可以使用csv.reader来读取csv文件中的数据,并将数据存储在相应的列表中。例如,如果你想绘制每日最高气温的折线图,你可以使用以下代码: ```python filename = 'your_csv_file.csv' # 替换为你的csv文件路径 with open(filename) as f: reader = csv.reader(f) header_row = next(reader) # 跳过标题行 highs = \[\] # 存储最高气温的列表 for row in reader: high = int(row\[1\]) # 假设最高气温在第二列 highs.append(high) ``` 接下来,你可以使用matplotlib来绘制图形。例如,你可以使用以下代码绘制折线图: ```python fig = plt.figure(dpi=128, figsize=(10, 6)) plt.plot(highs, c='red') # 绘制折线图,颜色为红色 plt.title("Daily high temperatures", fontsize=24) # 设置标题 plt.xlabel("Day", fontsize=16) # 设置x轴标签 plt.ylabel("Temperature (F)", fontsize=16) # 设置y轴标签 plt.tick_params(axis='both', which='major', labelsize=16) # 设置刻度标记的大小 plt.show() # 显示图形 ``` 请注意,以上代码仅为示例,你需要根据你的实际情况进行相应的修改,包括替换文件路径、列索引和图形的标题、标签等。 希望这可以帮助到你! #### 引用[.reference_title] - *1* *2* *3* [Python 读取CSV文件数据并生成可视化图形](https://blog.csdn.net/weixin_36158843/article/details/114359915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值