【问题标题】:Change horizontal barplot sizes matplotlib更改水平条形图大小 matplotlib
【发布时间】:2017-11-21 17:17:50
【问题描述】:

我正在尝试使用 mathplotlib 创建一个水平 barblot,但遇到了几个问题。

  1. 我需要更改整个绘图的大小。目前默认为 800x600。我想自己设置参数,这样情节就会调整到它的大小。因为例如目前条形之间的空白空间太多,我想扩大条形的宽度。

  2. 如果文本(条形标题或数值)不适合绘图,则会被忽略。我想扩展屏幕,让文字永远不会消失。

以下是代码输出的示例图片:

示例代码如下:

import numpy as np
import matplotlib.pyplot as plt

people = ('Tom sadf hasidfu hasdufhas d', 'Dick', 'Harry', 'Slim')
y_pos = np.arange(len(people))
performance = 3 + 10 * np.random.rand(len(people))

plt.barh(y_pos, performance, align='center', height=0.3, color="skyblue")
plt.yticks(y_pos, people)
plt.xlabel('Performance')
plt.title('How fast do you want to go today?')

for i, v in enumerate(performance):
    plt.text(v + 0.5, i, str(v), color='blue', fontweight='bold')

#plt.show()

filename = "myfilename.png"
plt.savefig(filename)

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    改变图形大小和调整绘图参数的方法有很多。它们都可以使用选择的搜索引擎找到。

    举个例子,图形大小可以通过figsize参数更改,刻度标签可以通过调用plt.tight_layout包含,限制可以通过plt.xlim设置。

    import numpy as np
    import matplotlib.pyplot as plt
    
    people = ('Tom Hanswurst Fitzgerald', 'Dick', 'Harry', 'Slim')
    y_pos = np.arange(len(people))
    performance = 3 + 10 * np.random.rand(len(people))
    
    plt.figure(figsize=(8,4))
    plt.barh(y_pos, performance, align='center', height=0.3, color="skyblue")
    plt.yticks(y_pos, people)
    plt.xlim(0,np.max(performance)*1.4)
    plt.xlabel('Performance')
    plt.title('How fast do you want to go today?')
    
    for i, v in enumerate(performance):
        plt.text(v + 0.5, i, str(v), color='blue', fontweight='bold')
    
    plt.tight_layout()
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2016-07-14
      • 2012-03-26
      • 2011-01-23
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 2016-03-08
      • 2021-11-08
      • 1970-01-01
      相关资源
      最近更新 更多