- 折线图
- 保存简单折线图
import matplotlib.pyplot as plt plt.figure(figsize=(20, 8), dpi=80) # figsize指定长高, dpi=像素 # 生成fig对象 plt.plot([1, 0, 9], [4, 5, 6]) path = 'test1.png' plt.savefig(path) # plt.show() # 注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片
- 画温度/时间图
- 初步实现
# import matplotlib.pyplot as plt import random x = range(60) y = [random.uniform(15, 18) for i in x] plt.figure(figsize=(20, 8), dpi=80) plt.plot(x, y) plt.show()
- 同一张表内折线图显示(可能存在中文显示问题)
# 添加网格显示 x = list(range(61)) y_shanghai = [random.uniform(a=39, b=40) for _ in range(len(x))] y_beijing = [random.uniform(a=3, b=5) for _ in range(len(x))] # 创建画布 plt.figure(figsize=(20, 8), dpi=100) # 绘制折线图 plt.plot(x, y_shanghai, label="上海", color="r") plt.plot(x, y_beijing, label="北京", color="y") # 设置辅助显示层 plt.title("上海和北京11点~12点温度变化情况", fontsize=20) # 设置x, y 轴的描述信息 plt.xlabel("时间(分)") plt.ylabel("温度(°C)", fontsize=20) xticks = range(41) # 设置刻度信息 plt.yticks(xticks[::5]) x_decs = ["11点{}分".format(i) for i in x] # 设置x轴的显示 为字符串 plt.xticks(x[::2],x_decs[::2],rotation=45) # rotation 字体显示倾斜度 # 显示网格 plt.grid(linestyle="-.", color="b", alpha=0.4) # 设置图例说明显示的位置 # plt.legend(loc="best") # plt.legend(loc=0) plt.legend() # 显示画图 plt.show()
- 中文显示问题
- 安装字体(SimHei或其他中文字体)
- 清楚matplotlib文件
- 更改配置
- 中文显示问题
- 初步实现
- 保存简单折线图
- 散点图
- 简单散点图
x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64, 163.56, 120.06, 207.83, 342.75, 147.9 , 53.06, 224.72, 29.51, 21.61, 483.21, 245.25, 399.25, 343.35] y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9 , 239.34, 140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 , 30.74, 400.02, 205.35, 330.64, 283.45] # 2)创建画布 plt.figure(figsize=(20, 8), dpi=100) # 3)绘制散点图 plt.scatter(x, y) # 4)显示图像 plt.show()
- 简单散点图
- 柱状图
- 简单柱状图
# 电影名字 movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它'] # 横坐标 x = range(len(movie_name)) # 票房数据 y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222] plt.figure(figsize=(20, 8), dpi=100) plt.bar(x, y, width=0.5, color=["r","b","y"]) # 这是x轴的刻度 plt.xticks(x, movie_name) plt.show()
- 简单柱状图
- 直方图
- 简单直方图
time = [131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92,121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101,131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150] # 创建画布对象 plt.figure(figsize=(20, 8), dpi=100) maxtime = max(time) mintime = min(time) step = 5 bins = int((maxtime - mintime) / step) # 调用直方图的绘图 方法 plt.hist(time, bins=bins) plt.grid(linestyle="--", color="r", alpha=0.3) # 显示画布 plt.show()
- 简单直方图
- 饼图
- 简单饼图
# 饼状图 movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它'] place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105] # 2)创建画布 plt.figure(figsize=(20, 8), dpi=100) # 3)绘制饼图 plt.pie(place_count, labels=movie_name, autopct="%1.2f%%", colors=['b','r','g','y','c','m','y','k','c','g','y']) # 显示图例 plt.legend() plt.axis("equal") plt.show()
- 注意显示的百分比的位数
- plt.pie(x, labels=,autopct=,colors)
- x:数量,自动算百分比
- labels:每部分名称
- autopct:占比显示指定%1.2f%%
- colors:每部分颜色
- 简单饼图