python - matplotlib 中的某一行未可视化
问题描述
from datetime import datetime
import datetime as dt
import csv
import matplotlib.dates as mdates
import numpy as np
import matplotlib.pyplot as plt
ldays = list()
aesvalues = list()
tezvalues = list()
vdevalues = list()
with open('data/dg_year_50.csv', newline='') as csvfile:
has_header = csv.Sniffer().has_header(csvfile.read(1024))
csvfile.seek(0) # Rewind.
datareader = csv.reader(csvfile, delimiter=',', quotechar='|')
if has_header:
next(datareader) # Skip header row.
for row in datareader:
date_cell = row[0]
aes_cell = row[1]
tez_cell = row[2]
vde_cell = row[3]
datetime_object = datetime.strptime(date_cell, '%d.%m.%Y %H:%M:%S')
aesvalues.append(aes_cell)
tezvalues.append(tez_cell)
vdevalues.append(tez_cell)
ldays.append(datetime_object)
days = mdates.date2num(np.array(ldays))
s_aesvalues = sorted(list(map(int, aesvalues)))
s_tezvalues = sorted(list(map(int, tezvalues)))
s_vdevalues = sorted(list(map(int, vdevalues)))
# These are the colors that will be used in the plot
color_sequence = ['#ffbb78', '#e377c2', '#1f77b4', '#ff7f0e', '#2ca02c',
'#98df8a', '#d62728', '#ff9896', '#9467bd', '#c5b0d5',
'#8c564b', '#c49c94', '#aec7e8', '#e377c2', '#f7b6d2',
'#c7c7c7', '#bcbd22', '#dbdb8d', '#17becf', '#9edae5']
# make a plot
fig, ax = plt.subplots(figsize=(14, 12))
# plot the data
majors = [s_tezvalues, s_vdevalues, s_aesvalues]
for rank, column in enumerate(majors):
line = plt.plot_date(x=days, y=majors[rank], lw=2.5, color=color_sequence[rank])
fig.suptitle('Дані по енергетиці', fontsize=18, ha='center')
plt.xlabel('Дата', fontsize=14, ha='center')
plt.ylabel('Кількість енергії (Вт)', fontsize=14, ha='center')
plt.show()
我有 'data/dg_year_50.csv' 有 4 列(Дата,АЕС,ТЕЦ,ВДЕ)。第一个代表“日期”,其余 3 代表需要在绘图中显示为线条的适当值。我不明白为什么我要可视化 2 行而不是 3 行。结果可视化如下所示:
解决方案
推荐阅读
- gradle - 找不到参数 [文件集合] 的方法 compile()
- azure - Azure B2C SSO,是否可以根据客户端应用程序发送不同的索赔数据
- javascript - Vue从子组件中获取数据
- python - 从 Kivy 中的另一个类访问函数
- python - 我无法在 python 中让我的 Discord 机器人向特定频道发送消息
- mongodb - 需要帮助查询 mongo 上的嵌套数组
- javascript - 'Element'.ts 类型上不存在属性'innerText'(2339)
- html - HTML如何在视频中循环播放嵌入视频,其中包含开始和结束时间
- javascript - document.querySelectorAll 返回的数组长度始终为 0
- typescript - 巢穴 | 使用 ConfigService 设置日志级别