Вопрос:

Круглая точка на графике матплотлиба

matplotlib python-3.5

156 просмотра

1 ответ

64 Репутация автора

import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({'y':['a','b','c','d','e','f','g','h','i']\
                       ,'x':[10,9,9,8,7,6,10,6,7]})
df.sort_values(by='x',inplace=True,ascending = True)

plt.barh(bottom=list(range(1,10)), width=df.x, height = 0.15, align='center',color = 'blue')
plt.xlim([0,11])
plt.yticks(list(range(1,10)),skills.y)
plt.show()

Этот код дает мне горизонтальную гистограмму. Я хочу добавить круглую точку на краю каждого бара. Может кто-нибудь, пожалуйста, помогите мне с этим. Таблицу графиков Я сделал это в таблице, я хочу повторить то же самое в Python. Также, пожалуйста, дайте мне знать, если есть лучший способ кодирования того же самого.

Я использую Anaconda Python 3.5, библиотека Matplotlib, Windows 10, Idlex IDE

Автор: Gowtham M Источник Размещён: 09.03.2017 10:57

Ответы (1)


3 плюса

6271 Репутация автора

Вы можете просто добавить диаграмму рассеяния поверх ваших баров, используя scatterфункцию matplotlib .

Также обратите внимание, что вы можете использовать numpy.arangeфункцию для генерации ваших значений x вместо текущих list(range(1,10)).

См пример ниже

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df = pd.DataFrame({'y':['a','b','c','d','e','f','g','h','i'],
                   'x':[10,9,9,8,7,6,10,6,7]})

df.sort_values(by='x',inplace=True,ascending = True)

plt.barh(bottom=np.arange(len(df)), width=df.x, height = 0.15, align='center',color = 'blue')
plt.scatter(df.x.values, y=np.arange(df.shape[0]), color='b', s=40)
plt.xlim([0,11])
plt.yticks(np.arange(len(df)),df.y)
plt.show()

IMG

Автор: gcalmettes Размещён: 10.03.2017 06:10
Вопросы из категории :
32x32