【发布时间】:2015-09-24 00:45:39
【问题描述】:
我的 csv 文件是, https://github.com/camenergydatalab/EnergyDataSimulationChallenge/blob/master/challenge2/data/total_watt.csv
我想将此 csv 文件可视化为集群。 我的理想结果是下图。(较高的点(红色区域)将是较高的能源消耗,较低的点(蓝色区域)将是较低的能源消耗。)
我想将 x 轴设置为日期(例如 2011-04-18),将 y 轴设置为时间(例如 13:22:00),将 z 轴设置为能耗(例如 925.840613752523)。
我使用以下程序成功地将 csv 数据文件可视化为每 30 分钟的值。
from matplotlib import style
from matplotlib import pylab as plt
import numpy as np
style.use('ggplot')
filename='total_watt.csv'
date=[]
number=[]
import csv
with open(filename, 'rb') as csvfile:
csvreader = csv.reader(csvfile, delimiter=',', quotechar='|')
for row in csvreader:
if len(row) ==2 :
date.append(row[0])
number.append(row[1])
number=np.array(number)
import datetime
for ii in range(len(date)):
date[ii]=datetime.datetime.strptime(date[ii], '%Y-%m-%d %H:%M:%S')
plt.plot(date,number)
plt.title('Example')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()
我还成功地使用以下程序将 csv 数据文件可视化为每天的值。
from matplotlib import style
from matplotlib import pylab as plt
import numpy as np
import pandas as pd
style.use('ggplot')
filename='total_watt.csv'
date=[]
number=[]
import csv
with open(filename, 'rb') as csvfile:
df = pd.read_csv('total_watt.csv', parse_dates=[0], index_col=[0])
df = df.resample('1D', how='sum')
import datetime
for ii in range(len(date)):
date[ii]=datetime.datetime.strptime(date[ii], '%Y-%m-%d %H:%M:%S')
plt.plot(date,number)
plt.title('Example')
plt.ylabel('Y axis')
plt.xlabel('X axis')
df.plot()
plt.show()
虽然我可以将 csv 文件可视化为每 30 分钟和每天的值,但我不知道将 csv 数据可视化为 3D 中的集群..
我该如何编程...?
【问题讨论】:
-
很难从这张图片中准确地看出你想要什么,无论如何你可以解释得更好一点吗?我现在的想法是,您想将日期和时间分开,并将日期用作 x 轴,将时间用作 y 轴,然后将数据用作 z 轴。另请注意,您不必在执行
pd.read_csv()之前打开 csv 文件。我目前不在家里的电脑前,但我回家后也许可以。 -
感谢您的评论,NightHallow。
-
感谢您的评论,NightHallow!我想用 3D 图表中的能量数据可视化,当能量消耗高时为红色,当能量消耗低时为蓝色。
-
抱歉,很难解释我想要什么..lol
标签: python csv pandas matplotlib