柱状图
import numpy as np
import matplotlib.pyplot as plt
import random
# 准备数据
x_data = ['ASSISTments2009','ASSISTments2017','NIPS34','ASSISTments2012']
y_data = [337424,942814,1399520,2709647]
# 正确显示中文和负号
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
width=0.4
# 画图,plt.bar()可以画柱状图
for i in range(len(x_data)):
plt.bar(x_data[i], y_data[i],width=width)
# 设置图片名称
# plt.title("销量分析")
# 设置x轴标签名
plt.xlabel("数据集名称")
# 设置y轴标签名
plt.ylabel("交互个数")
# 显示
plt.savefig("output.png", dpi=300, bbox_inches="tight")
plt.show()
并列柱状图
import matplotlib.pyplot as plt
import numpy as np
size = 4
# 返回size个0-1的随机数
a = np.array([123,102,57,265])
b = np.array([17737,3162,948,53070])
c = np.array([337424,942814,1399520,2709647])
# x轴坐标, size=5, 返回[0, 1, 2, 3, 4]
x = np.arange(size)
# 有a/b/c三种类型的数据,n设置为3
total_width, n = 0.8, 3
# 每种类型的柱状图宽度
width = total_width / n
# 重新设置x轴的坐标
x = x - (total_width - width) / 2
print(x)
# 画柱状图
plt.bar(x, a, width=width, label="a")
plt.bar(x + width, b, width=width, label="b")
plt.bar(x + 2*width, c, width=width, label="c")
# 显示图例
plt.legend()
# 显示柱状图
plt.show()