【问题标题】:Circular dot on matplotlib barh graphmatplotlib barh 图上的圆点
【发布时间】: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

【问题讨论】:

    标签: matplotlib python-3.5


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-26
      • 2020-08-18
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2019-01-30
      相关资源
      最近更新 更多