找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2620|回复: 3

请问,我在用csv文件绘图的时候,为什么纵坐标有问题

0

主题

2

帖子

2

积分

贫民

积分
2
lefun71victor 发表于 2019-9-24 06:45:23 | 显示全部楼层 |阅读模式
本帖最后由 lefun71victor 于 2019-9-24 06:52 编辑

请问,为什么我导入csv文件绘图,结果纵坐标不是按照数值大小来排列的,而是按照先后顺序,直接把数据贴在了纵坐标轴上的呢?

我可以给各位展示一下截图和代码
。麻烦各位前辈解答一下啦。谢谢哦


Capture.PNG

Capture2.PNG
Capture3.PNG
# This is trying to plot a simple version from .csv second trial
import csv
import math
import numpy as np
import sys, os
from matplotlib import pyplot

#记得一定要定义变量
listage = []
listnum = []

with open('t05_2.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    header = next(reader)

    for row in reader:
        listage.append(row[24])
        listnum.append(row[9])

x = listage
y = listnum   

pyplot.plot(x, y,)

pyplot.title("test5_1")

pyplot.show()

pyplot.savefig('.test5_1.jpg',dpi=300) # the resolution can be set here as well

#This trial proved that the .csv format may avoid the data type conversion and the row separation problem
# However, the present problem is that the value sequence is incorrect.

.test5_1.jpg
Capture.PNG
回复

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
willzeng 发表于 2019-9-24 17:42:26 | 显示全部楼层
你可以打印一下x和y,个人感觉你的数据y类型是字符串,不是数值型的
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
lefun71victor  楼主| 发表于 2019-9-25 05:00:45 | 显示全部楼层
willzeng 发表于 2019-9-24 17:42
你可以打印一下x和y,个人感觉你的数据y类型是字符串,不是数值型的

您好!

我这里打印了x 和y的赋值情况。可以参考一下截图。另外,我也觉得我的x和y的数据类型是string而不是float。

您如果仔细查看我上面的原始数据文件的截图,会发现里面日期和时间的两列可能会导致整个文件内的数据被导入python之后是string而不是float。请问有什么办法解决这个问题吗?

后续要做到的难点在于,要以时间线为横坐标来配合PH值(就是现在的纵坐标数据)来绘图。

谢谢前辈啦!

Capture4.PNG
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
lefun71victor  楼主| 发表于 2019-9-25 05:10:46 | 显示全部楼层
willzeng 发表于 2019-9-24 17:42
你可以打印一下x和y,个人感觉你的数据y类型是字符串,不是数值型的

我用type(x) 和type(y) 查看过,两个都是list类型的数据
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表