暑期实践第三十一天 2022-8-3

常用图表的绘制

1.绘制折线图

Matplotlib绘制折线图主要使用plot函数

import pandas as pd
import matplotlib.pyplot as plt
df1 = pd.read_excel('data.xls')
x1=df1['姓名']
y1=df1['语文']
y2=df1['数学']
y3=df1['英语']
plt.rcParams['font.sans-serif']=['SimHei']   #解决中文乱码
plt.rcParams['xtick.direction'] = 'out'  #x轴的刻度线向外显示
plt.rcParams['ytick.direction'] = 'in'  #y轴的刻度线向内显示
plt.title('语数英成绩', fontsize='18')
plt.plot(x1, y1, label='语文', color='r', marker='p')
plt.plot(x1, y2, label='数学', color='g', marker='.', mfc='r', ms=8, alpha=0.7)
plt.plot(x1, y3, label='英语', color='b', linestyle='-.', marker='*')
plt.grid(axis='y')     #显示网格关闭y轴
plt.ylabel('分数')
plt.yticks(range(50, 150, 10))
plt.legend(['语文', '数学', '英语'])
plt.show()

输出结果

 参数说明:

mfc:标记的颜色

ms:标记的大小

mec:标记边框的颜色

alpha:透明度

2.绘制柱形图

绘制柱形图主要使用bar函数

matplotlib.pyplot.bar(x, height, width, bottom=None, *, align='center', data=None, **kwargs)

height:柱子的高度

width:柱子的宽度,默认0.8

bottom:可选参数,柱形图的y坐标

align:对齐方式

使用5行代码绘制简单的柱形图

import matplotlib.pyplot as plt
x=[1, 2, 3, 4, 5, 6]
height = [10, 20, 30, 40, 50, 60]
plt.bar(x,height)
plt.show()

2.1基本柱形图

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('books.xlsx')
plt.rcParams['font.sans-serif']=['SimHei']
x=df['年份']
height = df['销售额']
plt.grid(axis='y', which='major')  #设置虚线网格
plt.xlabel('年份')
plt.ylabel('线上销售额')
plt.title('销售额分析图')
plt.bar(x, height, width=0.5, align='center', color = 'b', alpha=0.5)
for a, b in zip(x, height):
    plt.text(a, b, format(b,','), ha='center', va='bottom', fontsize=9, color='b', alpha=0.9)
#设置每个柱子的文本标签,'format(b,',')'格式化销售额为千位分隔符格式
plt.legend('销售额')
plt.show()

 

 2.2多柱形图

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('books.xlsx', sheet_name='Sheet2')
plt.rcParams['font.sans-serif']=['SimHei']
x=df['年份']
y1=df['京东']
y2=df['天猫']
y3=df['自营']
width = 0.25
plt.ylabel('线上销售额')
plt.title('销售额分析图')
plt.bar(x, y1, width = width, color='darkorange')
plt.bar(x+width, y2, width = width, color = 'deepskyblue')
plt.bar(x+2*width, y3, width = width, color = 'g')
plt.legend(['京东', '天猫', '自营'])
plt.show()

输出结果

 3.绘制直方图

主要使用hist函数

matplotlib.pyplot.hist(x, bins=None, range=None, density=None, bottom=None, histtype='bar', align='mid', log=False, color=None, label=None, stacked=False, normed=None)

density:显示频率统计结果,默认None

log: y坐标轴是否选择指数刻度

stacked:是否堆积状图。

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('grade1.xls')
plt.rcParams['font.sans-serif']=['SimHei']
x=df['得分']
plt.xlabel('分数')
plt.ylabel('学生数量')
plt.title('学生成绩分布直方图')
plt.hist(x, bins=range(0, 151, 25), facecolor='blue', edgecolor='black', alpha=0.7)
plt.show()

4.绘制饼形图

主要使用pie函数

matplotlib.pyplot.pie()

 参数:

labels:每一块饼形图外侧显示的说明文字

explode:每一块饼形图离中心的距离

autopct:设置饼图百分比,可以使用格式化字符串或format函数。如'%1.1f'保留小数点的后一位

import matplotlib.pyplot as plt
x = [2, 5, 12, 70, 2, 9]
plt.pie(x, autopct='%1.1f%%')
plt.show()

 4.1基础饼状图

import pandas as pd
from matplotlib import pyplot as plt
df1 = pd.read_excel('data2.xls')
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码
plt.figure(figsize=(5,3)) #设置画布大小
labels = df1['省']
sizes = df1['销量']
#设置饼形图每块的颜色
colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold']
plt.pie(sizes, #绘图数据
        labels=labels,#添加区域水平标签
        colors=colors,# 设置饼图的自定义填充色
        labeldistance=1.02,#设置各扇形标签(图例)与圆心的距离
        autopct='%.1f%%',# 设置百分比的格式,这里保留一位小数
        startangle=90,# 设置饼图的初始角度
        radius = 0.5, # 设置饼图的半径
        center = (0.2,0.2), # 设置饼图的原点
        textprops = {'fontsize':9, 'color':'k'}, # 设置文本标签的属性值
        pctdistance=0.6)# 设置百分比标签与圆心的距离
# 设置x,y轴刻度一致,保证饼图为圆形
plt.axis('equal')
plt.title('2020年1月各省销量占比情况分析')
plt.show()

输出

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值