- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 matplotlib
将 barh
绘图绘制到文件中。不幸的是,YTickLaels 有点太长,绘图区域不会自动向右移动。有没有办法自动将绘图区域向右移动,这样我就不会遇到不完整的 YTickLabels 问题?
我使用的代码如下:
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
D = {u'Label1':26, u'Label2 is longer than others': 17, u'Label3 is not so short either':30}
fig = plt.figure(figsize=(5.5,3),dpi=300)
ax = fig.add_subplot(111)
ax.grid(True,which='both')
bar = ax.barh(range(1,len(D)+1,1),D.values(),0.4,align='center')
plt.yticks(range(1,len(D)+1,1), D.keys(), size='small')
fig.savefig('D_bar.png')
这是输出:
我该如何解决这个问题?谢谢
最佳答案
实际上,现在有一种自动执行此操作的方法:tight_layout
.
在你的情况下:
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
D = {u'Label1':26, u'Label2 is longer than others': 17,
u'Label3 is not so short either':30}
fig = plt.figure(figsize=(5.5,3),dpi=300)
ax = fig.add_subplot(111)
ax.grid(True,which='both')
bar = ax.barh(range(1,len(D)+1,1),D.values(),0.4,align='center')
plt.yticks(range(1,len(D)+1,1), D.keys(), size='small')
fig.tight_layout() # <---- ADD THIS
fig.savefig('D_bar.png')
关于 python + matplotlib : barh plot show incomplete YTick labels - how to dynamically move the plot area to the right to fit the given YTickLabels?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011573/
这是一个包含 500 多个项目的 pandas 系列,我选择了前 10 个和后 10 个来绘制在一个 matplotlib 轴上,这是我手动绘制的图片: 数据在这里: bottom10 Out[12]
我有一些代码可以将 Excel 文件作为数据框打开。在此基础上绘制了一个 barh。但是,我无法显示栏中的值。 Excel 的列标题随文件的不同而变化,如图例所示。 数据框如下所示: 40+
我正在尝试为员工构建一个水平条形图,显示他们的计划工作时间与特定日期的实际工作时间。 我已经尝试了以下代码,但正如您在下面的“绘图”图像中所看到的,它将实际工作时间(蓝色)连接到计划时间的末尾(绿色)
我有一个 barh 条形图,图中只有两个条形图,但是在绘制它们时,它们相距很远: import numpy as np import matplotlib.pyplot as plt labels =
在matplotlib的函数barh的定义中: matplotlib.pyplot.barh(bottom, width, height=0.8, left=None, hold=None, **kw
我正在尝试制作一个类似这样的情节, 左侧图表(带图例的图)源自 df_2,右侧图表源自 df_1。 但是,我不能让两个并排的图共享 y 轴。 这是我目前的绘图方式: df_1[target_cols]
我一直在生成如下所示的条形图: 请注意,由于某种原因,标签上的垂直间距不均匀;我不确定这是否与我分配刻度的方式或实际放置文本的任何机制有关。相关代码: height_factor = 40.0 ind
我有 15 个 barh 子图,如下所示: 我似乎无法使图例正常工作,因此我将在图表和图例中看到 [2,3,4] 作为单独的标签。 我在使此功能适用于子图时遇到问题。我的代码: import pand
我是 python 和 matplotlib 的初学者。我想创建一个带有图例的水平条形图。我的代码: import matplotlib.pyplot as plt plt.rcdefaults()
我生成了一个条形图,如何在每个条形上显示条形的值? 当前剧情: 我想得到什么: 我的代码: import os import numpy as np import matplotlib.pyplot
TL'DR,垂直条形图以传统方式显示——事物从左到右排列。但是,当它转换为水平条形图(从bar 到barh)时,一切都颠倒了。即,对于分组条形图,不仅分组条的顺序是错误的,而且每个组的顺序也是错误的。
我正在尝试绘制水平堆叠条形图,但在顶部和底部得到了令人讨厌的大边距。我想摆脱它或控制大小。 这是一个示例代码和图: from random import random Y = ['A', 'B', '
在下面的代码中,bdate 和 edate 都是 datetime.datetime() 对象: pylab.barh(ypos, edate - bdate, left=bdate, height=
请看附件 我在python中有如下源码 def plotBarChartH(self,data): LogManager.logDebug('Executing Plotter.
我想绘制一个 5 x 4 的地 block 。相同的代码如下 fig, axis = plt.subplots(5, 4,figsize=[25,10]) i = 0 for channel in n
我正在尝试绘制 2 向条形图。我想反转 x1 的 x 轴,以便 0 位于两者的中间。我不断收到错误: AttributeError: 'BarContainer' object has no attr
我一直在这个网站和谷歌试图解决这个问题。 看来我缺少制作可绘制数据框的基本概念。 我试图确保有一列用于“Teams”的字符串和一列用于“Points”的整数 我仍然得到: TypeError: Emp
我正在使用 matplotlib 将 barh 绘图绘制到文件中。不幸的是,YTickLaels 有点太长,绘图区域不会自动向右移动。有没有办法自动将绘图区域向右移动,这样我就不会遇到不完整的 YTi
我是一名优秀的程序员,十分优秀!