我一直在使用该ax.bar_label方法将数据值添加到条形图中。数字很大,例如143858918。如何使用该ax.bar_label方法向数据值添加逗号?我确实知道如何使用注释方法添加逗号,但如果可以使用bar_label,我不确定。是否可以使用fmt可用的关键字参数?
从matplotlib 3.4.0开始,Axes.bar_label方法允许标记条形图。
但是,标签格式选项适用于旧式格式,例如fmt='%g'
我怎样才能使它与新的样式格式一起工作,使我能够执行百分比、千位分隔符等操作: '{:,.2f}', '{:.2%}', ...
我首先想到的是以某种方式获取初始标签ax.containers,然后重新格式化它们,但它还需要适用于不同的条形结构、具有不同格式的分组条形等等。
在matplotlib函数barh的定义中:
matplotlib.pyplot.barh(bottom, width, height=0.8, left=None, hold=None, **kwargs)
默认的"高度"是0.8,但是当我绘制一些具有不同图形高度的图形时,例如(30,40,...)和dpi = 100.我看到酒吧的高度发生了变化.这不是固定的.所以我想知道什么是高度的单位,以及如何使其固定(不依赖于图的高度).
嗨,我目前正在使用数据框绘制堆叠水平条形图。代码如下
new_data.plot.barh(stacked = True)
Run Code Online (Sandbox Code Playgroud)
我得到一个像下面这样的图表。
我该如何实现?任何帮助表示赞赏。谢谢
绘图和值(204 kwh、604 kwh、60 kwh)之间的空间太小。如何将这些值移高一点并增加间距?
我拥有的:
我想要的是:
代码:
x_name = ['Average\nneighborhood\u00b9', 'Your\nconsumption', 'Efficient\nneighborhood\u00b2']
plt.figure(facecolor='#E2EBF3')
fig = plt.figure(figsize=(12,10))
plt.bar(x_name, val, color =['cornflowerblue', 'saddlebrown', '#196553'],width = .8)
plt.margins(x = .1 , y = 0.25)
plt.xticks(fontsize=25)
plt.yticks([])
hfont = {'fontfamily':'serif'}
for index, value in enumerate(np.round(val,2)):
plt.text(index,value, str(value)+" kWh",fontsize=25, ha='center', va = 'bottom',**hfont)
Run Code Online (Sandbox Code Playgroud) 我需要在直方图中绘制 3 个值。与其他值相比,其中一个值非常大。当我尝试绘制它们时,由于较大的另外两个值没有显示在图中。除了 Python 中的直方图之外,还有什么方法可以用图表来说明它们吗?是否有任何缩放技巧来解决这个问题?
下面给出的代码是我试过的。我使用 python 库 numpy 和 matplotlib 来绘制图形。
import numpy as np
import matplotlib.pyplot as plt
height = [0.422602, 0.000011, 0.000453]
bars = ('2X2', '4X4', '8X8')
y_pos = np.arange(len(bars))
plt.bar(y_pos, height, color = (0.572549,0.2862,0.0,1))
plt.xlabel('Matrix Dimensions')
plt.ylabel('Fidelity for Matrices with Sparsity 1')
plt.xticks(y_pos, bars)
plt.show()
Run Code Online (Sandbox Code Playgroud)
输出是上面包含的图片。此图未描绘其他两列的值。我怎么解决这个问题?