[英]How to plot line graph with x and y categorical axis?
I'm trying to plot a line graph that compares 2 categorical variables. 我正在尝试绘制比较2个类别变量的折线图。 However I keep running into errors.
但是我一直遇到错误。 I've put my code below:
我将代码放在下面:
import matplotlib.pyplot as plt
cat = ["bored", "happy", "bored", "bored", "happy", "bored"]
dog = ["happy", "happy", "happy", "happy", "bored", "bored"]
activity = ["combing", "drinking", "feeding", "napping", "playing",
"washing"]
fig, ax = plt.subplots()
ax.plot(activity, dog, label="dog")
ax.plot(activity, cat, label="cat")
ax.legend()
plt.show()
To provide an answer here: When being run with matplotlib >=2.1, the code from the question 在此处提供答案:当使用matplotlib> = 2.1运行时,来自问题的代码
import matplotlib.pyplot as plt
cat = ["bored", "happy", "bored", "bored", "happy", "bored"]
dog = ["happy", "happy", "happy", "happy", "bored", "bored"]
activity = ["combing", "drinking", "feeding", "napping", "playing",
"washing"]
fig, ax = plt.subplots()
ax.plot(activity, dog, label="dog")
ax.plot(activity, cat, label="cat")
ax.legend()
plt.show()
runs fine and produces 运行良好并产生
import numpy as np import matplotlib.pyplot as plt cat = ["bored", "happy", "bored", "bored", "happy", "bored"] dog = ["happy", "happy", "happy", "happy", "bored", "bored"] activity = ["combing", "drinking", "feeding", "napping", "playing", "washing"] catu, cati = np.unique(cat, return_inverse=True) dogu, dogi = np.unique(dog, return_inverse=True) fig, ax = plt.subplots() ax.plot(range(len(dog)), dogi, label="dog") ax.plot(range(len(cat)), cati, label="cat") ax.set_xticks(range(len(activity))) ax.set_xticklabels(activity) ax.set_yticks(range(len(catu))) ax.set_yticklabels(catu) ax.legend() plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.