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 我在画面中这样做了,我想在python中复制它。 另外,如果有更好的编码方式,请告诉我。
我使用的是Anaconda Python 3.5,Matplotlib库,Windows 10,Idlex IDE
答案 0 :(得分:2)
您可以使用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()