42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
import pandas as pd
|
|
from matplotlib import pyplot as plt
|
|
from util import constants as C
|
|
from scipy.stats.mstats import winsorize
|
|
import numpy as np
|
|
import matplotlib.collections as collections
|
|
import seaborn as sb
|
|
import matplotlib
|
|
|
|
LABEL = [('SF', 'San Francisco, California, USA'), ('Chicago',
|
|
'Chicago, Illinois, USA'), ('NYC', 'New York City, New York, USA')]
|
|
|
|
|
|
def plot_coverage():
|
|
plt.figure(figsize=(8, 4))
|
|
font = {'family': 'normal',
|
|
'weight': 'normal',
|
|
'size': 15}
|
|
|
|
matplotlib.rc('font', **font)
|
|
T = 60
|
|
COLOR = ['C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7']
|
|
for i, (name, place) in enumerate(LABEL):
|
|
data = pd.read_csv(
|
|
f"/home/haosheng/dataset/camera/sample/meta_0228/{name}_coverage.csv")
|
|
sb.kdeplot(data.coverage, label=place.split(",")[0], linewidth=2)
|
|
threshold = np.clip(data.coverage, 0, T).mean()
|
|
plt.axvline(x=threshold, linestyle='-.', color=COLOR[i])
|
|
print(f"Average coverage for city {place}: {threshold}")
|
|
plt.xlim([0, 120])
|
|
|
|
plt.legend(loc='upper right')
|
|
plt.xlabel("Estimated Road Segment Coverage (meter)")
|
|
plt.ylabel("Probability Density")
|
|
|
|
t = np.arange(T, 130, 0.01)
|
|
collection = collections.BrokenBarHCollection.span_where(
|
|
t, ymin=0, ymax=1, where=t > 0, facecolor='gray', alpha=0.15)
|
|
ax = plt.gca()
|
|
ax.add_collection(collection)
|
|
plt.subplots_adjust(bottom=0.2)
|
|
plt.savefig("figures/coverage.png")
|