我想移动条形图中的条形值,以使它们不会彼此合并。我的代码如下。
final ObjectMapper objectMapper = new
ObjectMapper().enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
try {
String jsonInString = objectMapper.writeValueAsString(products.get(j));
InventoryParser inventoryParser = objectMapper.readValue(jsonInString,
InventoryParser.class);
System.out.println(inventoryParser.getId());
}
catch (IOException e)
{
e.printStackTrace();
}
下面给出了这段代码的结果。
我想要在图像中显示的内容如下所示,在该位置上,我可以以不被合并且清晰可见的方式来放置条形值。
注意:应注意,我希望我的图像宽度相同。
答案 0 :(得分:1)
由于您不想增加图形大小,因此这里提供了一种廉价的手动黑客工具,以获取所需的内容。我只是粘贴修改后的代码。其余的一切都与您的代码相同。最后,我也缩短了您的set_color
部分。附注:由于某些可视化/保存了图形,因此条形的宽度看起来有所不同。在我的屏幕上,它们看起来都一样宽。
def autolabel(rects):
for i, rect in enumerate(rects):
height = rect.get_height()
if i == 2 or i ==7:
ax.text(rect.get_x() + rect.get_width()/1., 1.07*height,
'%.2f' %(height), ha='center', va='bottom')
ax.vlines(rect.get_x() + rect.get_width()/3., 1.005*height, 1.07*height, lw=1, color='gray')
else:
ax.text(rect.get_x() + rect.get_width()/1., 1.01*height,
'%.2f' %(height), ha='center', va='bottom')
autolabel(rects1)
c = 7*['r'] + 5*['g'] + ['b']
for i, r in enumerate(rects1):
r.set_color(c[i])
输出