Visualisations¶
Visualisations¶
Visualisations
Plotting functions of Vi go here.
- class vectorai.analytics.viz.VizMixin(username: str, api_key: str, url: str = 'https://api.vctr.ai')¶
Visualisation submodule for the library.
- plot_dimensionality_reduced_vectors(collection: Union[str, List[Dict]], point_label: str, dim_reduction_field: str, cluster_field: Optional[str] = None, cluster_label: Optional[str] = None, include_centroids: bool = False, color: Optional[str] = None, alias: Optional[str] = None, mode: str = 'markers')¶
Returns a 2D plot of vectors that have been dimensionally reduced.
- Parameters
collection – A collection or the name of a collection
point_label – The label of every point. This should be found in the document.
dim_reduction_field – The dimensionally-reduced vectors.
cluster_field – The field by which it is clustered.
cluster_label – The name of the clusters
include_centroids – Whether to include the centroids of every cluster
- Returns
Plotly figure object
See example from: https://colab.research.google.com/drive/10u7b3lkIVJ-lceCmr34ywscOGueIFd0I?usp=sharing
Example
>>> collection_name = 'nlp-qa' >>> cluster_field = 'question_vector_' >>> cluster_label = 'category' >>> alias = '1st_cluster' >>> dim_reduction_field = '_dr_.default.2.question_vectors_' # the '.' in names implies nested dictionaries in Vi >>> vi_client.plot_dimensionality_reduced_vectors(collection=collection_name, cluster_field=cluster_field, cluster_label=cluster_label, point_label='question_title', dim_reduction_field=dim_reduction_field, include_centroids=True, alias=alias)
- plot_1d_cosine_similarity(documents: list, vector_fields: List[str], label: str, anchor_document: Optional[dict] = None, anchor_index: Union[str, int] = 0, orientation: int = 'h', barmode: int = 'group', num_cols: Optional[int] = None, y_axis_tickangle: int = - 15, x_axis_tickangle: int = 15)¶
Compare 1 document against other documents. Ensure that the name is unique, otherwise the plot will simply take the mean.
- Parameters
documents – list of documents (dictionaries) to feed in
vector_fields – vector field to calculate cosine similarity on
label – the x label for the bar plot
anchor_document – the document to compare it on
anchor_index – the anchor index to compare it on
orientation – The orientation of the bar chart. Can be ‘v’ (vertical) or ‘h’ (horizontal)
num_cols – The number of columns. The default will put everything into 1 row. If you want to
things into multiple rows (put) –
please reduce the number of columns. (then) –
y_axis_tickangle – This will change the tick angles of the y axis in the vertical chart.
x_axis_tickangle – This will change the tick angels of the x axis in the vertical chart.
- Returns
returns a horizontal barplot showing cosine similarity scores.
- Return type
Plotly Figure
Example
>>> cluster_field = 'question_vector_' >>> cluster_label = 'category' >>> alias = '1st_cluster' >>> dim_reduction_field = '_dr_.default.2.question_vectors_' # the '.' in names implies nested dictionaries in Vi >>> vi_client.plot_1d_cosine_similarity(collection=collection_name, cluster_field=cluster_field, cluster_label=cluster_label, point_label='question_title', dim_reduction_field=dim_reduction_field, include_centroids=True, alias=alias)
- plot_2d_cosine_similarity(documents: List[Dict], anchor_documents: List[Dict], vector_fields: List[str], label: str, mode='markers+text', textposition='top center', show_spikes=True, text_label_font_size: int = 12, text_label_font_family='Rockwell', text_label_bgcolor='white', marker_colors=['purple', 'aquamarine'], metric='cosine', plot_bgcolor='#e6e6fa', spikedash='dot', spikethickness=1.5, include_diagonal_line: bool = True)¶
Plotting 2D cosine similarity plots :param documents: The documents to :param anchor_documents: Documents by which to compare against :param vector_fields: The list of vectors to accept :param Label: The document field to label :param Mode: Whether to include markers or text (view Plotly documentation for more information) :param textposition: where the text labels should be in relation to the marker :param show_spikes: show the spikes in comparison to the x and y labels :param text_label_font_family: The font of the text :param text_label_font_size: The font size of the text :param marker_colors: The color of the markers If the number of colors do not :param match then we it randomly generates.: :param metric: The metric to use. Currently only supports cosine similarity :param plot_bgcolor: The background color of the plot :param spikethickness: The thickness of the spikes :param spikedash: Type of line the spikes should be. :param include_diagonal_line: Include the diagonal line.
Example
>>> vi_client = ViClient() >>> collection_name = 'ecommerce' >>> docs = vi_client.random_documents(collection_name)['documents'] >>> vi_client.plot_2d_cosine_similarity(docs, docs[0:2], vector_fields=['use_vector_'], label='name')
- plot_radar_across_documents(docs: List[Dict], anchor_documents: List[Dict], vector_field: str, label_field: str, range: List = [0, 1], fill: Optional[str] = None, scoring_metric='cosine')¶
Radar plot for 1D cosine similarity across documents. :param docs: A list of documents :param anchor_document: The document to compare against :param vector_field: The vector vector field :param label_field: The field of the documents to get labels.
- plot_radar_across_vector_fields(docs: List[Dict], anchor_document: Dict, vector_fields: List[str], label_field: str, range=[0, 1], fill=None, scoring_metric='cosine')¶
Radar plot for 1D cosine similarity across different vector spaces. :param docs: A list of documents :param anchor_document: The document to compare against :param vector_fields: the different vector fields :param label_field: The field of the documents to get labels.