利用pandas,matplotlib画饼图

  • 前言
    今天没得前言

这样的数据:

利用pandas,matplotlib画饼图_第1张图片

先画一个最简单的饼图:

# @DATE : 2021-1-3
# @TIME : 13:36
# @USER : kirin
import pandas as pd
import matplotlib.pyplot as plt
csv = pd.read_csv("data/26_.csv")
csv['a'].plot.pie()
plt.show()

结果:
利用pandas,matplotlib画饼图_第2张图片
这个图中旁边的的数字显示的其实是csv的index,因为在这里我没有设置index

文件读取后设置index

# 为dataframe设置index:
csv.set_index('from', inplace=True)
# 或者你也可以在读取csv文件的时候设置index:index_col='from'

输出:

利用pandas,matplotlib画饼图_第3张图片

为它设置标题,设置y轴(不得不说,饼图有y轴吗),设置标题:

# 设置标题和y轴:
plt.title('It\'s a title', fontsize=16, fontweight='bold')
plt.ylabel('2017', fontsize=16, fontweight='bold')

结果:

利用pandas,matplotlib画饼图_第4张图片

如果此时你按照升序进行排列,会发现它饼图是按照逆时针排列的:

# 按照升序排序
csv.a.sort_values().plot.pie()

结果:

利用pandas,matplotlib画饼图_第5张图片

如果想要它顺时针排列:

# 按照升序排序并按照顺时针排列
# counterclock:是否逆时针
csv.a.sort_values().plot.pie(counterclock=False)

结果:

利用pandas,matplotlib画饼图_第6张图片

如果想要修改起始点:

# 按照升序排序并按照顺时针排列,再设置个起始点
csv.a.sort_values().plot.pie(counterclock=False, startangle=-270)

结果:

利用pandas,matplotlib画饼图_第7张图片

代码的笔记:

# KIRIN
# 2021-1-5
# 14:22
# 绘制饼图
import pandas as pd
import matplotlib.pyplot as plt

csv = pd.read_csv("data/26_.csv")
# 此时发现它的侧边写的是id(此时显示的是index),而不是 from 列的名称,

# 为dataframe设置index:
csv.set_index('from', inplace=True)
# 或者你也可以在读取csv文件的时候设置index:index_col='from'

print(csv)

# 此时是逆时针的图
# csv['a'].plot.pie()
# 如果要使用的列明是数字,则无法使用下列的读取方法:
# csv.a.plot.pie(fontsize=18)

# 顺时针排序:
# csv.a.sort_values(ascending=True).plot.pie(fontsize=18)
# 起始点是饼图的右顶点

# 设置起始点为饼图的上顶点:
# csv.a.sort_values(ascending=True).plot.pie(fontsize=18, startangle=-270)

# 或者使用:
# counterclock:逆时针
csv.a.sort_values(ascending=True).plot.pie(fontsize=18, counterclock=False, startangle=-270)

# 优化:
plt.title('It\'s a title', fontsize=16, fontweight='bold')
# csv.a.plot.pie()
plt.ylabel('2017', fontsize=16, fontweight='bold')

# plt.tight_layout()
plt.show()

你可能感兴趣的:(pandas,走过的坑)