Пример #1
0
 def obtainAwardedPlayers():
     if len(DraftDataObtainer.urlList) == 0:
         print(DraftDataObtainer.gatherURL)
         DraftDataObtainer.urlList = ProFootballReferenceURLGenerator.createURLList()
     if DraftDataObtainer.scraper is None:
         DraftDataObtainer.scraper = NFLPlayerScraper(DraftDataObtainer.urlList)
     if len(DraftDataObtainer.scraper.playerList) == 0:
         print(DraftDataObtainer.scraping)
         DraftDataObtainer.scraper.scrape()
     print("Printing All Awarded Players' Data to CSVs.")
     CSVPrinter.printAwardedEdgesCSVAndLabelsCSV(DraftDataObtainer.scraper.playerList,
                                                 DraftDataObtainer.baseCSVDirectory + "awardedEdgesCSV.csv",
                                                 DraftDataObtainer.baseCSVDirectory + "awardedLabelsCSV.csv")
     print(DraftDataObtainer.finishedMessage)
Пример #2
0
 def obtainBarChartAllTimeData(awardedOnly):
     if len(DraftDataObtainer.urlList) == 0:
         print(DraftDataObtainer.gatherURL)
         DraftDataObtainer.urlList = ProFootballReferenceURLGenerator.createURLList()
     if DraftDataObtainer.scraper is None:
         DraftDataObtainer.scraper = NFLPlayerScraper(DraftDataObtainer.urlList)
     if len(DraftDataObtainer.scraper.playerList) == 0:
         print(DraftDataObtainer.scraping)
         DraftDataObtainer.scraper.scrape()
     print("Printing Bar Chart Data to CSVs.")
     bartChartCSV = DraftDataObtainer.baseCSVDirectory + "BarChartAllTimeCSV"
     if awardedOnly:
         bartChartCSV = bartChartCSV + "Awarded"
     bartChartCSV = bartChartCSV + ".csv"
     CSVPrinter.printBarChartCSV(DraftDataObtainer.scraper.playerList, bartChartCSV, awardedOnly)
     print(DraftDataObtainer.finishedMessage)
Пример #3
0
 def obtainDBs(awardedOnly):
     if len(DraftDataObtainer.urlList) == 0:
         print(DraftDataObtainer.gatherURL)
         DraftDataObtainer.urlList = ProFootballReferenceURLGenerator.createURLList()
     if DraftDataObtainer.scraper is None:
         DraftDataObtainer.scraper = NFLPlayerScraper(DraftDataObtainer.urlList)
     if len(DraftDataObtainer.scraper.playerList) == 0:
         print(DraftDataObtainer.scraping)
         DraftDataObtainer.scraper.scrape()
     print("Printing DBs Player Data to CSVs.")
     edgesCSV = DraftDataObtainer.baseCSVDirectory + "positionDBsEdgesCSV"
     labelsCSV = DraftDataObtainer.baseCSVDirectory + "positionDBsLabelsCSV"
     if awardedOnly:
         edgesCSV = edgesCSV + "Awarded"
         labelsCSV = labelsCSV + "Awarded"
     edgesCSV = edgesCSV + ".csv"
     labelsCSV = labelsCSV + ".csv"
     CSVPrinter.printDBsEdgesAndLabelsCSVs(DraftDataObtainer.scraper.playerList, edgesCSV, labelsCSV, awardedOnly)
     print(DraftDataObtainer.finishedMessage)
Пример #4
0
 def obtainRoundsRange(minimum, maximum, awardedOnly):
     if len(DraftDataObtainer.urlList) == 0:
         print(DraftDataObtainer.gatherURL)
         DraftDataObtainer.urlList = ProFootballReferenceURLGenerator.createURLList()
     if DraftDataObtainer.scraper is None:
         DraftDataObtainer.scraper = NFLPlayerScraper(DraftDataObtainer.urlList)
     if len(DraftDataObtainer.scraper.playerList) == 0:
         print(DraftDataObtainer.scraping)
         DraftDataObtainer.scraper.scrape()
     print("Printing Rounds " + str(minimum) + "-" + str(maximum) + " Player Data to CSVs.")
     edgesCSV = DraftDataObtainer.baseCSVDirectory + "rounds" + str(minimum) + "To" + str(maximum) + "EdgesCSV"
     labelsCSV = DraftDataObtainer.baseCSVDirectory + "rounds" + str(minimum) + "To" + str(maximum) + "LabelsCSV"
     if awardedOnly:
         edgesCSV = edgesCSV + "Awarded"
         labelsCSV = labelsCSV + "Awarded"
     edgesCSV = edgesCSV + ".csv"
     labelsCSV = labelsCSV + ".csv"
     CSVPrinter.printRoundRangeEdgesAndLabelsCSVs(DraftDataObtainer.scraper.playerList, edgesCSV,
                                                  labelsCSV, minimum, maximum, awardedOnly)
     print(DraftDataObtainer.finishedMessage)
Пример #5
0
    def printBipartiteHTML(playersList, htmlLocation, awardedOnly):
        outerDict = {}
        tempCounterDict = {}
        counterDict = {}
        for player in playersList:
            playerHasAward = int(player.allPros) > 0 or int(
                player.proBowls) > 0
            if (awardedOnly and playerHasAward) or not awardedOnly:
                nflName = NFLTeam.getCachedTeam(
                    CSVPrinter.getModernNFLID(player.nflTeamID)).name
                collegeName = College.getCachedTeam(player.collegeID).name
                if nflName not in outerDict:
                    innerDict = {collegeName: 1}
                    outerDict[nflName] = innerDict
                elif collegeName not in outerDict[nflName]:
                    outerDict[nflName][collegeName] = 1
                else:
                    outerDict[nflName][collegeName] += 1
                if collegeName not in tempCounterDict:
                    innerCounterDict = {nflName: 1}
                    tempCounterDict[collegeName] = innerCounterDict
                elif nflName not in tempCounterDict[collegeName]:
                    tempCounterDict[collegeName][nflName] = 1
                else:
                    tempCounterDict[collegeName][nflName] += 1

        for clg in tempCounterDict:
            totalDraftees = 0
            for nfl in tempCounterDict[clg]:
                totalDraftees += tempCounterDict[clg][nfl]
            counterDict[clg] = totalDraftees
        topOfHTML = """
    <!DOCTYPE html>
    <meta charset="utf-8">
    <style>
    .mainBars rect{
      fill-opacity: 0;
      stroke-width: 0.5px;
      stroke: rgb(0, 0, 0);
      stroke-opacity: 0;
    }
    .subBars{
    	shape-rendering:crispEdges;
    }
    .header{
    	text-anchor:middle;
    	font-size:16px;
    }
    </style>
    <body>
    <script src="https://d3js.org/d3.v4.min.js"></script>
    <script src="http://vizjs.org/viz.v1.1.0.min.js"></script>
    <script>
    """
        dictionaryToString = '\nvar data = ['
        for nflTeam in outerDict:
            for college in outerDict[nflTeam]:
                if counterDict[college] > 3:
                    replacementCollegeName = college
                    if "'" in college:
                        replacementCollegeName = replacementCollegeName.replace(
                            "'", "`")
                    dictionaryToString += "['" + nflTeam + "','" + replacementCollegeName + "'," \
                                          + str(outerDict[nflTeam][college]) + "], " + "\n"
        dictionaryToString += "]; "
        dictionaryToString.replace("], \n];", "]];\n")
        bottomOfHTML = """
    var color ={ARI:"#f03535", ATL:"#ab0909",  BAL:"#64017d", BUF:"#166af2", CAR:"#50b4f2",
     CHI:"#013263", CIN:"#f58905", CLE:"#b35b04", DAL:"#ada9a5", DEN:"#FF990A",
     DET:"#0AB6FF", GNB:"#FFD20A", HOU:"#012A7D", IND:"#E1F5FA", JAX:"#146B02",
     KAN:"#F7070F", LAC:"#2FD1FA", LAR:"#024BAB", MIA:"#07E88E", MIN:"#A835F0",
     NOR:"#B58610", NWE:"#002EAB", NYG:"#4768C4", NYJ:"#039C27", OAK:"#000000",
     PHI:"#02BA2D", PIT:"#FFEA05", SEA:"#05FF09", SFO:"#E80725", TAM:"#F71936",
     TEN:"#2D95F7", WAS:"#B83D5F"};
    var svg = d3.select("body").append("svg").attr("width", 700).attr("height", 2200);
    var g = svg.append("g").attr("transform","translate(200,50)");

    var bp=viz.bP()
            .data(data)
            .pad(1)
            .min(8)
            .height(2000)
            .width(300)
            .barSize(35)
            .fill(d=>color[d.primary]);
    g.call(bp);

    g.selectAll(".mainBars")
        .on("mouseover",mouseover)
        .on("mouseout",mouseout)

    <!--Names-->
    g.selectAll(".mainBars").append("text").attr("class","label")
        .attr("x",d=>(d.part=="primary"? -30: 30))
        .attr("y",d=>+6)
        .text(d=>d.key)
        .attr("text-anchor",d=>(d.part=="primary"? "end": "start"));
    <!--Percent-->
    g.selectAll(".mainBars").append("text").attr("class","perc")
        .attr("x",d=>(d.part=="primary"? -90: 180))
        .attr("y",d=>+6)
        .text(function(d){ return d3.format("0.0%")(d.percent)})
        .attr("text-anchor",d=>(d.part=="primary"? "end": "start"));

    function mouseover(d){
        bp.mouseover(d);
        g.selectAll(".mainBars")
        .select(".perc")
        .text(function(d){ return d3.format("0.0%")(d.percent)})
    }
    function mouseout(d){
        bp.mouseout(d);
        g.selectAll(".mainBars")
            .select(".perc")
            .text(function(d){ return d3.format("0.0%")(d.percent)})
    }
    d3.select(self.frameElement).style("height", "800px");
    </script>
    </body>
    </html>
            """

        entireHTML = topOfHTML + dictionaryToString + bottomOfHTML
        with open(htmlLocation, "w") as htmlwriter:
            htmlwriter.write(entireHTML)
        htmlwriter.close()