matplotlib 官方文档
绘图
代码语言:javascript复制# 导入
from matplotlib import pyplot as plt
# 或者
# import matplotlib.pyplot as plt
# 导入 numpy
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示 中文标签
plt.rcParams['axes.unicode_minus'] = False # 正常显示 负号
# 画布
#plt.figure()
plt.figure(figsize(7, 5)) # 创建图像区域,指定比例,缺省 1:1
# x轴, y轴刻度
# matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs)
plt.xticks()
plt.yticks()
# c=color 颜色
plt.scatter(x, y, c='c') # scatter 散点图
plt.plot(x, y_line, c='r') # 画线
plt.plot([1, 2, 3, 4], [1, 4, 2, 3]) # Matplotlib plot
plt.title('关系图')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.legend() # 显示图例
plt.ylim(0, 2.2) # 显示的y轴范围
# 保存图片
# 注意: 一定要在画完图后,show() 前
plt.savefig('D:test.png')
# 展示图
plt.show()
画图
饼状图
代码语言:javascript复制plt.pie(data'xColName', labels = labels)
import pandas as pd
import matplotlib.pyplot as plt
catering_dish_profit = '../data/chapter3/demo/data/catering_dish_profit.xls' # 餐饮数据
data = pd.read_excel(catering_dish_profit) # 读取数据,指定“日期”列为索引
# 绘制饼图
x = data['盈利']
labels = data['菜品名']
plt.figure(figsize = (8, 6))
plt.pie(x, labels = labels)
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.title('菜品销售量分布(饼图)')
plt.axis('equal')
plt.show()
分布(条形图)
代码语言:javascript复制plt.bar(x, y)
import pandas as pd
import matplotlib.pyplot as plt
catering_dish_profit = '../data/chapter3/demo/data/catering_dish_profit.xls' # 餐饮数据
data = pd.read_excel(catering_dish_profit) # 读取数据,指定“日期”列为索引
x = data['菜品名']
y = data['盈利']
plt.figure(figsize = (8, 4))
plt.bar(x, y)
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.xlabel('菜品')
plt.ylabel('销量')
plt.title('菜品销售量分布(条形图)')
plt.show()
折线图
代码语言:javascript复制plt.plot(data'xColName', data'yColName', color = '', label = 'yColName') 画折线图,关键在于 给出表格列名,需要显示的标签名,颜色 第一个参数列作 x轴,这里是月份,第二个参数列作 y轴,这里是部门销售额
data = pd.read_excel("../data/chapter3/demo/data/dish_sale.xls")
plt.figure(figsize = (8, 4))
plt.plot(data['月份'], data['A部门'], color = 'green', label = 'A部门', marker = 'o')
plt.plot(data['月份'], data['B部门'], color = 'red', label = 'B部门', marker = 's')
plt.plot(data['月份'], data['C部门'], color = 'skyblue', label = 'C部门', marker = 'x')
plt.legend() # 显示图例
plt.ylabel('销售额(万元)')
plt.show()
plt.axis()
plt.axis('equal') # 显示为圆(避免比例压缩为椭圆)
plt.hist() 直方图
代码语言:javascript复制plt.hist(ffp_year, bins='auto', color='#0504aa')
bins : integer or array_like, optional 指定bin(箱子)的个数, 也就是总共有几条条状图
plt.pie() 饼图
代码语言:javascript复制# 绘制 会员性别比例饼图
plt.pie([male, female], labels=['男', '女'], colors=['lightskyblue', 'lightcoral'], autopct='%1.1f%%')
杂
调整X或Y轴上刻度
代码语言:javascript复制x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15]
plt.plot(x, y)
# 设置 x 的刻度
plt.xticks() # 不填则自动
# 取步长作为 刻度
#plt.xticks(x[::2])
# 当刻度太密集时,用 `列表的步长(间隔取值)` 来解决,matplotlib 会自动帮我们对应
plt.show()
image-20201208131639112
不设置 xticks(),则自动 可以看到 x轴刻度自动生成
image-20201208131236486
plt.xticks(x::2) 可以看到x轴刻度: 2, 6, 10, ... 步长为 4
image-20201208131955707
常见问题
1. TypeError: bar() missing 1 required positional argument: 'x'
代码语言:javascript复制plt.bar(left=range(3), height=[lv_four, lv_five, lv_six], width=0.4, alpha=0.8, color='skyblue')
TypeError: bar() missing 1 required positional argument: 'x'
解决: left 改为 x,版本问题,新 matplotlib 中改为x
- 本文作者: yiyun
- 本文链接: https://cloud.tencent.com/developer/article/1970523
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!