matplotlib barh 图上的圆点

Posted

技术标签:

【中文标题】matplotlib barh 图上的圆点【英文标题】:Circular dot on matplotlib barh graph 【发布时间】:2017-07-31 03:09:57 【问题描述】:
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()

这段代码给了我一个水平条形图。 我想在每个条的边缘添加一个圆点。 有人可以帮我吗。 Tableau graph 我在 tableau 中做了这个,我想在 python 中复制它。 另外,如果有更好的编码方法,请告诉我。

我正在使用 Anaconda Python 3.5、Matplotlib 库、Windows 10、Idlex IDE

【问题讨论】:

【参考方案1】:

您可以使用 matplotlib scatter 函数在条形顶部添加散点图。

另外,请注意,您可以使用 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()

【讨论】:

以上是关于matplotlib barh 图上的圆点的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib可视化篇barh()--直方图(2)

Matplotlib 轴图例在 barh 中仅显示一个标签

删除 matplotlib 图上的图例

Matplotlib图表上输出中文(汉字)减号问题

MatPlotLib:同一个散点图上的多个数据集

Python matplotlib,图上的时间戳