前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matplotlib 笔记

matplotlib 笔记

作者头像
yiyun
发布2022-04-01 12:17:57
9530
发布2022-04-01 12:17:57
举报
文章被收录于专栏:yiyun 的专栏

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()

画图

饼状图

plt.pie(data'xColName', labels = labels)

代码语言:javascript
复制
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()

分布(条形图)

plt.bar(x, y)

代码语言:javascript
复制
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()

折线图

plt.plot(data'xColName', data'yColName', color = '', label = 'yColName') 画折线图,关键在于 给出表格列名,需要显示的标签名,颜色 第一个参数列作 x轴,这里是月份,第二个参数列作 y轴,这里是部门销售额

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 绘图
  • 画图
    • 饼状图
      • 分布(条形图)
        • 折线图
          • plt.axis()
          • plt.hist() 直方图
          • plt.pie() 饼图
        • 调整X或Y轴上刻度
        • 常见问题
          • 1. TypeError: bar() missing 1 required positional argument: 'x'
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档