2016-08-27 7 views
2

Я попытался создать гистограмму, которая отображает самые звездные проекты на GitHub. Я добавил 'label' и 'xlink' внутри всплывающих подсказок, однако содержимое 'label' не очень подходит для некоторых предметов, некоторые ссылки не отображаются в подсказке некоторых проектов. Смотрите ниже,Как настроить всплывающую подсказку в Pygal?

enter image description here

Ниже приведен код Python с помощью модуля Pygal, запустить его и увидеть .svg файл самостоятельно.

import requests, pygal 


url = 'https://api.github.com/search/repositories?q=language:python&sort=star' 
r = requests.get(url) 
repo_list = r.json()['items'] 

names, stars = [], [] 
for k in repo_list: 
    names.append(k['name']) 
    temp = { 
      'value': k['stargazers_count'], 
      'label': k['description'], 
      'xlink': k['html_url'], 
      } 
    stars.append(temp) 

my_config = pygal.Config() 
my_config.x_label_rotation = 45 

chart = pygal.Bar(my_config) 
chart.title = 'GitHub, Python Most Starred Projects' 
chart.x_labels = names 
chart.add('', stars) 
chart.render_to_file('MyFile.svg', force_uri_protocol = 'http') 

Как я могу решить эту проблему, либо путем изменения размера шрифта в подсказке или окнах подсказки размера?

ответ

1

Я не думаю, что есть чистый способ сделать это; Я думаю, вам нужно будет напрямую изменить файл .svg. В проекте Pygal есть вопрос open issue, задающий этот вопрос. Кто-то, похоже, нашел a solution, используя \n и force_uri_protocol='http', но это не работает для меня. На моей машине \n просто преобразуется в одно пространство.

Лучшее, что я мог придумать это усечение описание на определенное количество символов, что-то вроде этого:

temp = { 
     'value': k['stargazers_count'], 
     'label': k['description'][:80] + "..." , 
     'xlink': k['html_url'], 
     } 

Если вам нравится это решение, которое вы можете добавить некоторую логику так короткие метки не имеют эллипсис в конце. Я думаю, что это решение, которое я буду использовать в следующий раз, когда я столкнусь с этой проблемой.

+0

OMG! Это безумие, но ты мистер Мэтт? – Nicholas

+0

Да, я иногда так смотрю на вопросы Пигала. :) – japhyr

+0

Спасибо за обходной путь! (Кстати, действительно наслаждайтесь проектами в вашей книге ...) – Nicholas