Nano Hash - криптовалюты, майнинг, программирование

Matplotlib Python Barplot: положение меток xtick имеет нерегулярные промежутки между собой

Я пытаюсь сделать гистограмму для многих стран и хочу, чтобы имена отображались немного повернутыми под полосами. Проблема в том, что промежутки между метками неправильные.

Здесь вы можете увидеть гистограмму с названиями стран в качестве меток

Вот соответствующий код:

 plt.bar(i, bar_height, align='center', label=country ,color=cm.jet(1.*counter/float( len(play_list))))
 xticks_pos = scipy.arange( len( country_list)) +1
 plt.xticks(xticks_pos ,country_list, rotation=45 )

Кто-нибудь знает решение?

Спасибо! За вашу помощь.

христианин


  • Можете ли вы предоставить полностью рабочий пример (т. е. с данными и импортом), чтобы люди могли с ним поиграть? 31.01.2014

Ответы:


1

Я думаю, проблема в том, что метка xtick выровнена по центру текста, но когда она поворачивается, вы заботитесь о ее конце. В качестве примечания: вы можете использовать положение столбцов для выбора положения xtick, которое лучше обрабатывает пробелы/неравномерные интервалы.

Вот пример, который использует веб-ресурс для списка стран (используйте свой собственный, если вы не доверяете произвольному ресурсу, который Google нашел для меня)

import urllib2
import numpy as np
import matplotlib.pyplot as plt 

# get a list of countries
website = "http://vbcity.com/cfs-filesystemfile.ashx/__key/CommunityServer.Components.PostAttachments/00.00.61.18.99/Country-List.txt"
response = urllib2.urlopen(website)
page = response.read()
many_countries = page.split('\r\n')

# pick out a subset of them
n = 25
ind = np.random.randint(0, len(many_countries), 25) 
country_list = [many_countries[i] for i in ind]

# some random heights for each of the bars.
heights = np.random.randint(3, 12, len(country_list))


plt.figure(1)
h = plt.bar(xrange(len(country_list)), heights, label=country_list)
plt.subplots_adjust(bottom=0.3)

xticks_pos = [0.65*patch.get_width() + patch.get_xy()[0] for patch in h]

plt.xticks(xticks_pos, country_list,  ha='right', rotation=45)

и приводит к гистограмме, метки которой равномерно распределены и повернуты:

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

31.01.2014
  • Короче говоря: добавьте ha='right' в качестве параметра к plt.xticks(...). Спасибо за решение! 03.07.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..