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 图上的圆点的主要内容,如果未能解决你的问题,请参考以下文章