繁体   English   中英

如何在Python中使用matplotlib绘制我的数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM