Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib+;pandas-未生成PDF的PDF页_Python_Pdf_Matplotlib_Pdfpages - Fatal编程技术网

Python matplotlib+;pandas-未生成PDF的PDF页

Python matplotlib+;pandas-未生成PDF的PDF页,python,pdf,matplotlib,pdfpages,Python,Pdf,Matplotlib,Pdfpages,我要做的是构建一个python脚本,按班级划分字母等级分布,并向每位讲师发送电子邮件,其中包含他们所有班级的PDF分布 脚本的电子邮件部分工作正常,情节的生成也是如此。不起作用的是没有创建PDF文件 import pandas as pd import numpy as np import scipy import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPages import csv #

我要做的是构建一个python脚本,按班级划分字母等级分布,并向每位讲师发送电子邮件,其中包含他们所有班级的PDF分布

脚本的电子邮件部分工作正常,情节的生成也是如此。不起作用的是没有创建PDF文件

import pandas as pd
import numpy as np
import scipy
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
import csv

# Import ALL grading data
print "Reading distribution.csv..."
df = pd.read_csv('distribution.csv', header=0)

# Generate the mailing list
mailing_list = df.email.unique()

# Build the PDFs
for email in mailing_list:
    pp = PdfPages('grading_distribution.pdf')
    filtered_df = df[df.email == email]
    # Generate a course list
    course_list = filtered_df.course.unique()
    for course in course_list:
        fig = plt.figure()
        filtered_df[filtered_df.course == course].groupby('letter_grade').enrollment.sum().plot(kind='bar')
        plt.title(str(course) + " Grading Distribution")
        plt.xlabel("Letter Grade")
        plt.ylabel("Number of Students")
    fig.savefig(pp, format='pdf')
    pp.close()
发行版.csv

term,course,email,letter_grade,enrollment
Summer 2014,ABC123,jdoe@gmail.com,A,1
Summer 2014,ABC123,jdoe@gmail.com,B,1
Summer 2014,ABC123,jdoe@gmail.com,B,1
Summer 2014,ARR111,jdoe@gmail.com,D,1
Summer 2014,ARR111,jdoe@gmail.com,C,1
Summer 2014,ARR111,jdoe@gmail.com,F,1
Summer 2014,XYZ987,abob@gmail.com,F,1
Summer 2014,XYZ987,abob@gmail.com,C,1
Summer 2014,XYZ987,abob@gmail.com,C,1
Summer 2014,ABC123,jdoe@gmail.com,B,1
Summer 2014,ABC123,jdoe@gmail.com,C,1
Summer 2014,ABC123,jdoe@gmail.com,C,1
Summer 2014,ARR111,jdoe@gmail.com,D,1
Summer 2014,ARR111,jdoe@gmail.com,C,1
Summer 2014,ARR111,jdoe@gmail.com,A,1
Summer 2014,XYZ987,abob@gmail.com,A,1
Summer 2014,XYZ987,abob@gmail.com,F,1
Summer 2014,XYZ987,abob@gmail.com,C,1

欢迎来到堆栈溢出!请解释一下“不工作”是什么意思。请包括完整的回溯(如果存在)和一个小样本,它本身可以运行,并且能够重现问题。谢谢Veedrac。我不能提供我正在使用的任何数据,但我可以创建一个虚拟csv。没有运行时错误。脚本执行并生成绘图,但它不生成pdf文件。即使可以共享原始数据,虚拟数据也是正确的解决方案。;)请注意,您实际上不太可能需要与原始数据一样多的数据;如果只运行一次就说明了问题(例如),那么几乎不需要循环。我已经编辑了OP-它现在很小,可以运行,并且包含一个指向可下载虚拟csv的链接。