当前位置: 首页 > 知识库问答 >
问题:

与条形图一致的X记号值[重复]

谯德元
2023-03-14

有人能帮我把我的x记号设置成横条吗。如图所示,条形图与xtick time值不一致。我已经在下面打印了g01g02的数据值以及代码。我已经尝试过这个解决方案,Python MatplotLib将第一个x轴值标记为1(而不是0),plt。xticks(np.arange(len(g01))np.arange(1,len(g01)1)),尽管随后的条形图与x记号一致,但它变为数字1到28。我想要我的图像中的时间段。

g01 = ['2021-02-01 05:00:31', '2021-02-02 00:01:04', '2021-02-03 00:05:09', '2021-02-04 00:05:15', '2021-02-05 00:03:14', '2021-02-06 00:00:25', '2021-02-07 00:04:09', '2021-02-08 00:04:35', '2021-02-09 00:00:00', '2021-02-10 00:02:00', '2021-02-11 00:01:28', '2021-02-12 00:06:31', '2021-02-13 00:00:30', '2021-02-14 00:03:30', '2021-02-15 00:05:20', '2021-02-16 00:00:13', '2021-02-17 00:00:21', '2021-02-18 00:08:02', '2021-02-19 00:00:31', '2021-02-20 00:00:04', '2021-02-21 00:05:05', '2021-02-22 00:02:18', '2021-02-23 00:00:10', '2021-02-24 00:00:38', '2021-02-25 00:00:47', '2021-02-26 00:00:17', '2021-02-27 00:00:28', '2021-02-28 00:03:00']
g02 = [164, 158, 180, 200, 177, 112, 97, 237, 95, 178, 163, 78, 67, 65, 134, 93, 220, 74, 131, 172, 77, 102, 208, 109, 113, 208, 110, 101]

fig = plt.figure()
fig, ax1 = plt.subplots(1,1)
plt.yscale("log")
barlist1=ax1.bar(g01,g02)
for i in range(21):
    barlist1[i].set_color('pink')
degrees = 70
plt.xticks(rotation=degrees)    
plt.xlabel('period', fontsize=14, fontweight="bold")
plt.ylabel('rating values', fontsize=10, fontweight="bold")

共有1个答案

仲孙兴旺
2023-03-14

虽然链接的副本确实改进了与ha='right'的对齐,但标签仍然会略有偏差。

首先请注意,标记/标签已正确映射,您可以通过使用旋转=90(左子批次)看到:

plt.xticks(rotation=90)

如果将rotation=70ha='right'一起使用,请注意标签仍会稍微移动。这是因为matplotlib使用文本的边界框进行对齐,而不是文本本身(中间子地块):

plt.xticks(rotation=70, ha='right')

要更精确地调整标签,请添加ScaledTranslationtransform(右子批次):

from matplotlib.transforms import ScaledTranslation
offset = ScaledTranslation(xt=0.075, yt=0, scale_trans=fig.dpi_scale_trans)
for label in ax1.xaxis.get_majorticklabels():
    label.set_transform(label.get_transform() + offset)
 类似资料:
  • 我想知道这是否可以在Datadog中实现。我有一个在1个度量-现在数据通过多个标记发布到Datadog,例如,,可能还有10个不同的标签。 我试图在仪表板中创建Datadog图表,它将在堆叠条形图中显示实体计数的前5个标记。我知道添加更多查询的选项,但由于我不确定将来会有哪些实体可用,我希望datadog总是在仪表板中动态显示前5个实体(而不是在查询中指定要显示的标记)。这就是我目前拥有的(它完成

  • 我试图显示带有旋转x轴标签的图表,但该图表未显示。 此时,我可以看到图像,但在设置xticklabel后,我不再看到图像,只看到对象引用。(我会发布图片,但我没有足够的声誉:() 这里发布了一个类似的问题:在seaborn FactoryPlot中旋转标签文本,但解决方案不起作用。

  • 我正在使用Chart.js并将其设置为生成一个漂亮的条形图。不幸的是,当您将鼠标悬停在条形图上时,默认弹出窗口仅显示条形图的值。我想弹出显示组中每个条的标签及其值。你有什么例子吗?非常感谢你! 实例

  • 我有以下数据: 这导致了下图: 我需要在每个栏的顶部添加值。需要帮助吗?

  • 我正在尝试创建包含值的访客条形图,例如: 我想显示一个每日总访客的条形图,该条形图应包含总访客和首次访客的信息。 所以数据条应该看起来像: 我查看了chartjs文档,但只找到了具有堆叠值的示例,并且该解决方案不适用于我所需的设计,是否有人可以参考文档/文章/教程或个人经验,或者我应该切换到d3js?谢谢

  • 在使用JFreeChart创建具有相对较大数据集的条形图时,我面临以下问题: 用重叠的X轴标签生成的条形图。我尝试了垂直定位标签,仍然没有帮助。请提供解决此问题的最佳方法。代码剪切如下: 更新:根据@trash天的建议,我使用了从0到列计数的Sliding类别数据集索引。当列计数较大(此处为50)时,X标签重叠。当列计数设置为较低的数字时,它工作正常。我想找到大列大小的解决方案。重要的是,我需要将