【问题标题】:How to label x&y values using string and numbers at the same time in a graph on Python如何在 Python 的图形中同时使用字符串和数字标记 xy 值
【发布时间】:2019-06-17 17:53:22
【问题描述】:

我正在尝试使用 Python 来理解图形。我想了解“x_values”在以下代码中的作用以及它是如何工作的。我试图更改数字以查看它会影响什么,但它给了我“形状不匹配”错误,说“对象不能被广播到单个形状”。

另外,我想知道如何使用图表中的方条,为每个方条命名,但还要继续在轴上编号。

感谢 Ant 的帮助!

我从以下位置驱动代码/图表:Placing text values on axis instead of numeric values

谢谢。

我不知道哪里出了问题,这就是为什么我不知道我应该改变什么。

import matplotlib.pyplot as plt
import numpy as np
y_values = [0.1, 0.3, 0.4, 0.2]
text_values = ["word 1", "word 2", "word 3", "word 4"]
x_values = np.arange(1, len(text_values) + 1, 1)

plt.bar(x_values, y_values, align='center')
# Decide which ticks to replace.
new_ticks = ["word for " + str(y) if y != 0 else str(y) for y in y_values]
plt.yticks(y_values, new_ticks)
plt.xticks(x_values, text_values)
plt.show()

我希望正方形的名称同时显示在轴上以及 x-y 轴上的编号(在轴上显示正方形及其名称,并且编号仍在轴上)

【问题讨论】:

  • NumpyMatplotlib 有很好的文档。浏览Matplotlib Gallery,有很多功能的示例。
  • 非常感谢。不知道有一个很好的文档。一旦找到我自己问题的确切答案,我将在此处发布。再次感谢@wwii
  • 您的代码对我来说运行良好。您在问题中提到了 square 一词 3 次。这个正方形是什么?我在您的代码中没有看到任何 square正方形指的是什么?
  • 嗨@Sheldore,我的意思是矩形,对不起。它可以是任何形状的矩形,具体取决于您拥有的数据。当我指的是矩形时,我的意思是将它作为 x 或 y 轴上的数据,命名每个矩形,并且仍然在 x/y 轴上显示编号。我正在上面提供的链接中查看它
  • 所以上面的链接回答了你的问题,对吧?

标签: python matplotlib 2d python-3.7 graphing


【解决方案1】:

在您的代码中,text_values 是一个包含 4 个字符串的列表。所以它有 4 个元素,这个列表的长度是 4。这是使用命令 len(text_values) 获得的。所以现在下面的命令

np.arange(1, len(text_values) + 1, 1)

变成

np.arange(1, 4 + 1, 1)

意思是

np.arange(1, 5, 1)

这将生成从 1(第一个值)到第二个值减去 1 (5 - 1 = 4) 的连续数字,步长为 1(第三个值)。所以你会得到

x_values = [1, 2, 3, 4]

现在您将这些值用作条形图的 x 参数。因此,您的条形将位于 x = 1、x = 2、x = 3、x= 4。这就是您在图中看到的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2016-01-09
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多