使用matplotlib绘制直方图
from matplotlib import pyplot as plt
x = range(2, 26, 2)
y = [15, 13, 14, 5 ,17, 20 ,25, 26, 26, 24, 22, 18, 15]
plt.plot(x,y)
plt.show()
然后系统报错说x和y 不在一个维度,是因为y列表多了一个值,
去掉即可
生成一个这么样子的图:
from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,14,5,17,20,25,26,26,24,22,18]
plt.figure(figsize=(20,8), dpi=80) #设置生成的plot图大小和像素
plt.xticks(range(2,27)) #设置x轴刻度
plt.yticks(range(min(y), max(y)+1)) #设置y轴刻度
plt.plot(x,y)
plt.show()
效果图
from matplotlib import pyplot as plt
import random
x = range(0,120)
y = [random.randint(20,35) for i in range(120)] #生成120个y轴随机数
plt.figure(figsize=(20,8), dpi=80)
plt.plot(x,y)
plt.show()
result
自定义刻度,并且支持中文显示
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
#设置字体路径, 打开文件夹C:/windows/fonts可查看
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\STFANGSO.TTF")
x = range(0,120)
y = [random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8), dpi=80)
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3], _xtick_labels[::3], rotation=45, fontproperties=my_font)
plt.plot(x,y)
plt.show()
result
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\STFANGSO.TTF")
x = range(0,120)
y = [random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8), dpi=80)
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3], _xtick_labels[::3], rotation=45, fontproperties=my_font)
plt.xlabel("时间", fontproperties = my_font)
plt.ylabel("温度 单位(℃)", fontproperties = my_font)
plt.title("10点到12点每分钟的气温变化情况", fontproperties = my_font)
plt.plot(x,y)
plt.show()
result
还可以设置多条折线,图例,线段类型等多种样式
result