How to create a pie chart of user points and taxonomy terms?
There are a number of chart modules for drupal.
If you used the charts module, it has views integration, so assuming you are using the user points module, and that user points has view integration, you should be able to create a view with items grouped by term and display as a chart.
Update
Replicated your environment as above, updated the userpoints module to 7.x-1.x (dev), installed charts module (and included google charts module to test), constructed view of userpoints with contextual filter on user and the chart  works perfectly! Thanks for asking the question, I have suddenly thought of loads of places I could use similar graphic incentives.
Here is the exported view - in this example it uses taxonomy terms article, page and comments:
$view = new view();
$view-&gt;name = 'points_chart_userpoints';
$view-&gt;description = '';
$view-&gt;tag = 'default';
$view-&gt;base_table = 'userpoints';
$view-&gt;human_name = 'points_chart_userpoints';
$view-&gt;core = 7;
$view-&gt;api_version = '3.0';
$view-&gt;disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view-&gt;new_display('default', 'Master', 'default');
$handler-&gt;display-&gt;display_options['title'] = 'userpoints table block';
$handler-&gt;display-&gt;display_options['use_more_always'] = FALSE;
$handler-&gt;display-&gt;display_options['access']['type'] = 'none';
$handler-&gt;display-&gt;display_options['cache']['type'] = 'none';
$handler-&gt;display-&gt;display_options['query']['type'] = 'views_query';
$handler-&gt;display-&gt;display_options['exposed_form']['type'] = 'basic';
$handler-&gt;display-&gt;display_options['pager']['type'] = 'none';
$handler-&gt;display-&gt;display_options['pager']['options']['offset'] = '0';
$handler-&gt;display-&gt;display_options['style_plugin'] = 'chart';
$handler-&gt;display-&gt;display_options['style_options']['library'] = '';
$handler-&gt;display-&gt;display_options['style_options']['label_field'] = 'tid';
$handler-&gt;display-&gt;display_options['style_options']['data_fields'] = array(
  'points' =&gt; 'points',
  'tid' =&gt; 'tid',
);
$handler-&gt;display-&gt;display_options['style_options']['field_colors'] = array(
  'points' =&gt; '#2f7ed8',
  'tid' =&gt; '#0d233a',
);
$handler-&gt;display-&gt;display_options['style_options']['width'] = '';
$handler-&gt;display-&gt;display_options['style_options']['height'] = '';
$handler-&gt;display-&gt;display_options['style_options']['xaxis_labels_rotation'] = '0';
$handler-&gt;display-&gt;display_options['style_options']['yaxis_labels_rotation'] = '0';
/* No results behavior: Global: Text area */
$handler-&gt;display-&gt;display_options['empty']['area']['id'] = 'area';
$handler-&gt;display-&gt;display_options['empty']['area']['table'] = 'views';
$handler-&gt;display-&gt;display_options['empty']['area']['field'] = 'area';
$handler-&gt;display-&gt;display_options['empty']['area']['label'] = 'no points';
$handler-&gt;display-&gt;display_options['empty']['area']['empty'] = TRUE;
$handler-&gt;display-&gt;display_options['empty']['area']['content'] = 'no points found';
$handler-&gt;display-&gt;display_options['empty']['area']['format'] = 'filtered_html';
/* Relationship: Userpoints: User */
$handler-&gt;display-&gt;display_options['relationships']['uid']['id'] = 'uid';
$handler-&gt;display-&gt;display_options['relationships']['uid']['table'] = 'userpoints';
$handler-&gt;display-&gt;display_options['relationships']['uid']['field'] = 'uid';
/* Field: Userpoints: Current points in category */
$handler-&gt;display-&gt;display_options['fields']['points']['id'] = 'points';
$handler-&gt;display-&gt;display_options['fields']['points']['table'] = 'userpoints';
$handler-&gt;display-&gt;display_options['fields']['points']['field'] = 'points';
/* Field: Userpoints: Points category */
$handler-&gt;display-&gt;display_options['fields']['tid']['id'] = 'tid';
$handler-&gt;display-&gt;display_options['fields']['tid']['table'] = 'userpoints';
$handler-&gt;display-&gt;display_options['fields']['tid']['field'] = 'tid';
/* Contextual filter: User: Uid */
$handler-&gt;display-&gt;display_options['arguments']['uid']['id'] = 'uid';
$handler-&gt;display-&gt;display_options['arguments']['uid']['table'] = 'users';
$handler-&gt;display-&gt;display_options['arguments']['uid']['field'] = 'uid';
$handler-&gt;display-&gt;display_options['arguments']['uid']['relationship'] = 'uid';
$handler-&gt;display-&gt;display_options['arguments']['uid']['default_action'] = 'default';
$handler-&gt;display-&gt;display_options['arguments']['uid']['default_argument_type'] = 'user';
$handler-&gt;display-&gt;display_options['arguments']['uid']['default_argument_options']['user'] = FALSE;
$handler-&gt;display-&gt;display_options['arguments']['uid']['summary']['number_of_records'] = '0';
$handler-&gt;display-&gt;display_options['arguments']['uid']['summary']['format'] = 'default_summary';
$handler-&gt;display-&gt;display_options['arguments']['uid']['summary_options']['items_per_page'] = '25';

/* Display: Chart (block) */
$handler = $view-&gt;new_display('block', 'Chart (block)', 'block');

/* Display: Table (block) */
$handler = $view-&gt;new_display('block', 'Table (block)', 'block_1');
$handler-&gt;display-&gt;display_options['defaults']['style_plugin'] = FALSE;
$handler-&gt;display-&gt;display_options['style_plugin'] = 'table';
$handler-&gt;display-&gt;display_options['style_options']['columns'] = array(
  'points' =&gt; 'points',
  'tid' =&gt; 'tid',
);
$handler-&gt;display-&gt;display_options['style_options']['default'] = '-1';
$handler-&gt;display-&gt;display_options['style_options']['info'] = array(
  'points' =&gt; array(
    'sortable' =&gt; 0,
    'default_sort_order' =&gt; 'asc',
    'align' =&gt; '',
    'separator' =&gt; '',
    'empty_column' =&gt; 0,
  ),
  'tid' =&gt; array(
    'align' =&gt; '',
    'separator' =&gt; '',
    'empty_column' =&gt; 0,
  ),
);
$handler-&gt;display-&gt;display_options['defaults']['style_options'] = FALSE;
$handler-&gt;display-&gt;display_options['defaults']['row_plugin'] = FALSE;
$handler-&gt;display-&gt;display_options['defaults']['row_options'] = FALSE;

/* Display: Page */
$handler = $view-&gt;new_display('page', 'Page', 'page_1');
$handler-&gt;display-&gt;display_options['path'] = 'userpoints/chart';