![](/img/trans.png)
[英]How do you plot labelled data by using a dictionary in Matplotlib? (Python)
[英]How do I plot my data using matplotlib in Python?
我用这个来获得不同书籍的出版年份:
# -*- coding: utf-8 -*-
"""
Created on Fri Mar 22 13:12:11 2019
@author: Oppilas
"""
from __future__ import division
from matplotlib import pyplot as plt
from collections import Counter
import pandas as pd
import numpy as np
import re
import math
file = "BL-Flickr-Images-Book.csv"
df = pd.read_csv(file)
cnt = 0
for row in df['Date of Publication']:
try:
row += 0
except TypeError:
try:
new_value = int(row)
df.loc[cnt,'Date of Publication'] = new_value
except ValueError:
new_row = re.sub("\D","",row)
df.loc[cnt,'Date of Publication'] = int(new_row[:4])
cnt += 1
pub_years = []
for year in df['Date of Publication']:
if math.isnan(year):
continue
else:
if len(str(year)) >= 4:
pub_years.append(year)
那么,如何使用matplotlib合理地绘制这些数据呢? 我已经尝试过pyplot,但图形线遍布整个地方。 我也尝试查看hist的文档,但无法使其正常工作。
我提取的数据是否很差,或者是我的matplotlib缺乏技能?
通常,您几乎不需要遍历行来处理数据帧。 您可以直接处理列。 例如,这应该工作:
df.groupby('Year').count().plot(marker='o')
如果你有一些受损的日期,例如61,62,63等数字而不是1961年,1962年,1963年等,那么也许你可以过滤掉它们:
df.loc[df['Year']<100, 'Year'] = df['Year'] + 1900
我将您的列df['Date of publication']
更改为df['Year']
以使示例更容易阅读。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.