Esempio n. 1
0
def priceByManufacturer(figure, gridSpec=None, pdData=None, axes=None):
    if not axes:
        axes = figure.add_subplot(gridSpec[0, 0])

    manufacturerIds = cf_data.getManufacturerIds(pdData)

    minData = pdData.groupby("manufacturer", sort=True)["price"].min()
    meanData = pdData.groupby("manufacturer", sort=True)["price"].mean()
    maxData = pdData.groupby("manufacturer", sort=True)["price"].max()

    axes.set_title("Price by Manufacturers", fontsize=20)
    axes.plot(manufacturerIds, minData, c=colors[2], linewidth=4, alpha=0.7)
    axes.plot(manufacturerIds, meanData, c=colors[3], linewidth=4, alpha=0.7)
    axes.plot(manufacturerIds, maxData, c=colors[4], linewidth=4, alpha=0.7)
    axes.set_xticks(range(-1, 13))
    axes.set_xticklabels([" "] + cf_data.getManufacturerLabels(pdData))
    axes.set_xlabel("Manufacturer", fontsize=16)
    axes.set_ylabel("Price", fontsize=16)

    patchLow = mpl.patches.Patch(color=colors[2], alpha=0.7, label="Low")
    patchMean = mpl.patches.Patch(color=colors[3], alpha=0.7, label="Mean")
    patchHigh = mpl.patches.Patch(color=colors[4], alpha=0.7, label="High")

    axes.legend(handles=[patchHigh, patchMean, patchLow], loc=2)

    if gridSpec:
        gridSpec.tight_layout(figure)

    return axes
Esempio n. 2
0
def mpgByManufacturer(figure, gridSpec=None, pdData=None, axes=None):
    if not axes:
        axes = figure.add_subplot(gridSpec[0, 0])

    data = cf_data.getNumericData(pdData)

    axes.set_title("MPG by Manufacturers", fontsize=20)
    axes.scatter(data["manufacturer"],
                 data["highway mpg"],
                 c=colors[3],
                 s=500,
                 alpha=0.4)
    axes.scatter(data["manufacturer"],
                 data["city mpg"],
                 c=colors[0],
                 s=500,
                 alpha=0.4)
    axes.set_xticks(range(0, 13))
    axes.set_xticklabels(cf_data.getManufacturerLabels(pdData))
    axes.set_xlabel("Manufacturer", fontsize=16)
    axes.set_ylabel("MPG", fontsize=16)

    patchCity = mpl.patches.Patch(color=colors[0], alpha=0.7, label="City")
    patchHighway = mpl.patches.Patch(color=colors[3],
                                     alpha=0.7,
                                     label="Highway")
    axes.legend(handles=[patchCity, patchHighway], loc=2)

    if gridSpec:
        gridSpec.tight_layout(figure)

    return axes
Esempio n. 3
0
def inverseRiskinessAndLossesCombinedByManufacturer(figure,
                                                    gridSpec=None,
                                                    pdData=None,
                                                    axes=None,
                                                    xLabel=True,
                                                    rotateTicks=False):
    if not axes:
        axes = figure.add_subplot(gridSpec[0, 0])

    if rotateTicks:
        plt.xticks(rotation=70)

    manufacturerIds = cf_data.getManufacturerIds(pdData)

    riskMins = pdData.groupby("manufacturer")["riskiness"].min().values
    riskMeans = pdData.groupby("manufacturer")["riskiness"].mean().values
    riskMaxs = pdData.groupby("manufacturer")["riskiness"].max().values

    lossMins = pdData.groupby("manufacturer")["losses"].min().values
    lossMeans = pdData.groupby("manufacturer")["losses"].mean().values
    lossMaxs = pdData.groupby("manufacturer")["losses"].max().values

    mins = riskMins + lossMins
    means = riskMeans + lossMeans
    maxs = riskMaxs + lossMaxs

    minColor = colors[0]
    meanColor = colors[3]
    maxColor = colors[2]

    barMins = axes.bar(manufacturerIds,
                       mins,
                       align="center",
                       color=minColor,
                       alpha=0.7)
    barMeans = axes.bar(manufacturerIds,
                        means,
                        align="center",
                        color=meanColor,
                        alpha=0.7,
                        bottom=mins)
    barMaxs = axes.bar(manufacturerIds,
                       maxs,
                       align="center",
                       color=maxColor,
                       alpha=0.7,
                       bottom=means + mins)

    axes.set_title(
        "Inverse Riskiness and Losses Combined by Manufacturers\n(Normalized Data)",
        fontsize=20)
    axes.set_xticks(range(0, 13))
    axes.set_xticklabels(cf_data.getManufacturerLabels(pdData))

    if xLabel:
        axes.set_xlabel("Manufacturer", fontsize=16)

    axes.set_ylabel("Inverse Riskiness", fontsize=16)
    axes.legend([barMaxs, barMeans, barMins], ["Max", "Mean", "Min"], loc=2)

    if gridSpec:
        gridSpec.tight_layout(figure)

    return axes