--- title: Visualizations Basic Plots keywords: fastai sidebar: home_sidebar summary: "Common utilities for visualizing/plotting recsys data and patterns." description: "Common utilities for visualizing/plotting recsys data and patterns." nb_path: "nbs/visualization/visualization.basic_plots.ipynb" ---
{% raw %}
{% endraw %} {% raw %}
{% endraw %} {% raw %}

class Visual[source]

Visual()

{% endraw %} {% raw %}
{% endraw %} {% raw %}

class BasicVisual[source]

BasicVisual(figsize=(10, 10), show=True, save=False, pallete='viridis', style='whitegrid', rot=45, label_x='label_x', label_y='label_y', title='Basic Plot', nrows=1, ncols=1) :: Visual

{% endraw %} {% raw %}
{% endraw %} {% raw %}

class CountPlot[source]

CountPlot(data_x, data_y, add_pct=True, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
df = pd.DataFrame.from_dict({
    'genres':['Drama','Comedy'],
    'count':[40,20],
})

kwargs = {'label_x':'genres', 'label_y':'count of genre', 'figsize':(7,4)}

cp = CountPlot(data_x = df.genres.values,
               data_y = df['count'].values,
               **kwargs)

cp.plot()
{% endraw %} {% raw %}

class LongTailPlot[source]

LongTailPlot(item_ids, user_ids, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
df = pd.DataFrame.from_dict({
    'item_id':[1,1,2,2,2,2,3,4,4],
    'user_id':[1,2,2,2,3,3,4,4,4],
})

kwargs = {'figsize':(14,5)}

LongTailPlot(item_ids=df.item_id.values, user_ids=df.user_id.values, **kwargs)
<__main__.LongTailPlot at 0x7f20c9976f10>
{% endraw %} {% raw %}

class LongTailPlotv2[source]

LongTailPlotv2(item_ids, percentage=None, x_labels=True, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
item_ids = [1,1,2,2,2,2,3,4,4]

kwargs = {'figsize':(9,5)}

LongTailPlotv2(item_ids=df.item_id.values, percentage=0.5, **kwargs)
<__main__.LongTailPlotv2 at 0x7f20bdbcb710>
{% endraw %} {% raw %}

class MatrixPlot[source]

MatrixPlot(rating_matrix, interpolation=None, vmax=1, vmin=0, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
rating_matrix = np.vstack((np.random.randint(0,1, size=(1000,1000)),
                             np.random.randint(0,5, size=(500,1000))))
rating_matrix_binary = rating_matrix > 0
np.random.shuffle(rating_matrix_binary)
MatrixPlot(rating_matrix_binary)
<__main__.MatrixPlot at 0x7f20c7c594d0>
{% endraw %} {% raw %}

class ConfusionMatrix[source]

ConfusionMatrix(y, yhat, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
kwargs = {'figsize':(5,4)}

ConfusionMatrix(y=[1,0,0,1,1], yhat=[1,1,0,0,1], **kwargs)
<__main__.ConfusionMatrix at 0x7f20c659e1d0>
{% endraw %} {% raw %}

class EmbeddingPlot[source]

EmbeddingPlot(vectors, labels=None, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
kwargs = {'rot':0, 'pallete':'RdBu'}
EmbeddingPlot(vectors=np.random.randint(-1, 3, size=(5,100)), labels=['king', 'water', 'god', 'love', 'star'], **kwargs)
<__main__.EmbeddingPlot at 0x7f717d962b90>
{% endraw %} {% raw %}

class ClusterPlot[source]

ClusterPlot(labels, embedding_clusters, word_clusters, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
embedding_clusters = np.vstack((np.random.random(size=(1,5,5))*2,
                                np.random.random(size=(1,5,5))*-2))
word_clusters = [['apple', 'banana', 'mango', 'pineapple', 'orange'], ['red', 'green', 'orange', 'magenta', 'cyan']]
labels = ['fruits', 'animals']

ClusterPlot(labels, embedding_clusters, word_clusters)
<__main__.ClusterPlot at 0x7f717ca4bc90>
{% endraw %} {% raw %}

class TimelinePlot[source]

TimelinePlot(data, xticks_type='Month', xticks_interval=3, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
likes_data = pd.DataFrame({'type':'Like', 
                        'date':['Jun 2016', 'Jun 2016', 'Sept 2016'],
                        'color':'green'})
likes_data['date'] = pd.to_datetime(likes_data['date'])

# professional registration
comments_data = pd.DataFrame({'type':'Comment', 
                        'date':['Jul 2016', 'Aug 2016', 'Sept 2016', 'Sept 2016'],
                        'color':'blue'})
comments_data['date'] = pd.to_datetime(comments_data['date'])

combined_data = pd.concat([likes_data, comments_data])

kwargs = {'figsize':(12,5)}

TimelinePlot(combined_data, xticks_type='Day', xticks_interval=7, **kwargs)
<__main__.TimelinePlot at 0x7f717b03ca90>
{% endraw %} {% raw %}

class ImageGridPlot[source]

ImageGridPlot(paths, labels, columns=5, **kwargs) :: BasicVisual

{% endraw %} {% raw %}
{% endraw %} {% raw %}
!wget -q --show-progress -O cat1.png "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT7nrOEKnuu0ek-bvr3MOq5JqL6-bm6-0-DyA&usqp=CAU"
!wget -q --show-progress -O cat2.png "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTvTSWBQeuHSGP2wLQTNsPOTHp0ok7CVQ2bGQ&usqp=CAU"
cat1.png            100%[===================>]   4.93K  --.-KB/s    in 0s      
cat2.png            100%[===================>]   5.87K  --.-KB/s    in 0s      
{% endraw %} {% raw %}
df = pd.DataFrame.from_dict({
    'Path':['cat1.png', 'cat2.png'],
    'Label':['A','B']
})

df = df.append([df]*5,ignore_index=True)

ImageGridPlot(paths=df.Path.values,
              labels=df.Label.values)
<__main__.ImageGridPlot at 0x7f7177949a90>
{% endraw %}