最简单的饼图:
#解决中文字题显示不正常的问题
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
数据集:
最简单的饼图:
#导入第三方库
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集 df_1
df_1 = pd.read_csv("数据集.csv")
#将数据导入到饼图里面/pie():图标格式为饼图
df_1['数量'].plot.pie()
#生成饼图
plt.show()
饼图输出:
这个时候,想要的数据是按照我们所需要的要求输出了,但是美观度不够。
就比如说,最外面的那一圈数字;
并且它还有Y轴标签?????
这个时候如果我们在回过头看数据集,就会发现这个其实是数据所对应的索引数(这是因为我们还没有自定义index/标签),
我们这个时候可以在文件读取之后加上我们自定义的索引
自定义过标签的饼图:
文件读取后设置index
我选择用数据集标签那个字段的内容做索引内容
df_1.set_index('标签', inplace=True)
#导入第三方库
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集 df_1
df_1 = pd.read_csv("数据集.csv")
#自定义索引
df_1.set_index('标签', inplace=True)
#将数据导入到饼图里面/pie():图标格式为饼图
df_1['数量'].plot.pie()
#生成饼图
plt.show()
修改之后的输出:
这个时候的数据,是不是就比较符合我们的审美了,能知道谁是谁的谁了。问题解决了一个了
就是那个Y轴坐标,看着还是异常的别扭!!!!!
要想办法给他搞一下:
ps:但是本人能力有限,实在是搞不掉,最后决定加入它,呵,给他整个空值,我不就看不见了,看不见不就是没了嘛???
有X,Y轴的饼图:
# 设置标题和y轴:
plt.title('不同岗位数量在全国范围内所占的比例', fontsize=16, fontweight='bold')
plt.ylabel('', fontsize=16, fontweight='bold')
#导入第三方库
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集 df_1
df_1 = pd.read_csv("数据集.csv")
#自定义索引
df_1.set_index('标签', inplace=True)
#将数据导入到饼图里面/pie():图标格式为饼图
df_1['数量'].plot.pie()
#添加上标题和取消Y轴坐标
plt.title('不同岗位数量在全国范围内所占的比例', fontsize=16, fontweight='bold')
plt.ylabel('', fontsize=16, fontweight='bold')
#生成饼图
plt.show()
输出图:
这个时候基本上是不是感觉好多了,但是!!你发现这个时候你不是很好区分自然语言和图像识别谁的多????
排序后的饼图:
这个时候我们可以排序一波
# 按照升序排序
csv.a.sort_values().plot.pie()
# 按照升序排序并按照顺时针排列
# counterclock:是否逆时针
csv.a.sort_values().plot.pie(counterclock=False)
#导入第三方库
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集 df_1
df_1 = pd.read_csv("数据集.csv")
#自定义索引
df_1.set_index('标签', inplace=True)
#将数据导入到饼图里面/pie():图标格式为饼图
#降序排列一波
df_1['数量'].sort_values().plot.pie(counterclock=False)
#添加上标题和取消Y轴坐标
plt.title('不同岗位数量在全国范围内所占的比例', fontsize=16, fontweight='bold')
plt.ylabel('', fontsize=16, fontweight='bold')
#生成饼图
plt.show()
输出图:
这个时候再看数据,发现这个图似乎不凌乱了,看着顺眼了,心情舒畅了。但是老板要是问你人工智能占比多少,你咋搞?计算机捅一捅???
闹呢?
所以,你就要就上具体的比例数据了
带百分数的饼图:
这个时候就要在饼图内部进行设置了
#控制饼图的大小尺寸
figsize=(8, 8)
#控制输出的数值: .2:保留两位小数,%%显示单位为百分数
autopct='%.2f%%'
#降序排列:默认的数值是升序的
fontweight='bold'&&要和sort_values()一起使用
#导入第三方库
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集 df_1
df_1 = pd.read_csv("数据集.csv")
#解决中文字题显示不正常的问题
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
#自定义索引
df_1.set_index('标签', inplace=True)
#将数据导入到饼图里面/pie():图标格式为饼图
#降序排列一波
df_1['数量'].sort_values().plot.pie(figsize=(8, 8),autopct='%.2f%%',counterclock=False)
#添加上标题和取消Y轴坐标
plt.title('不同岗位数量在全国范围内所占的比例', fontsize=16, fontweight='bold')
plt.ylabel('', fontsize=16, fontweight='bold')
#生成饼图
plt.show()
输出图:
整理后的代码:(这个时候将pie内部的函数全部写进一个代码块中)
#导入第三方库
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集 df_1
df_1 = pd.read_csv("数据集.csv")
#解决中文字题显示不正常的问题
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
#重建索引数据
df_1.set_index('标签', inplace=True)
#将需要用的数据导入饼图
# autopct='%.2f%%' 显示数据为百分比
# df_1['数量'].plot.pie(autopct='%.2f%%')
df_1['数量'].sort_values().plot(kind = 'pie', # 选择图形类型
# pie 饼图
# bar 柱状图
figsize=(8, 8),
# 控制饼图的整体尺寸大小
autopct='%.1f%%', # 饼图中添加数值标签
# .1 & f :.1是保留一位小数,f是浮点数值类型
radius = 1, # 设置饼图的半径
startangle = 180, # 设置饼图的初始角度
counterclock = True, # 将饼图的顺序设置为顺时针方向
# title = '失信用户的受教育水平分布', # 为饼图添加标题
wedgeprops = {'linewidth': 1.5, 'edgecolor':'green'}, # 设置饼图内外边界的属性值,
#linewidth:控制的是边框的宽度
#edgecolor:控制边框颜色
textprops = {'fontsize':10, 'color':'black'} # 设置文本标签的属性值
# fontsize :控制文本的字体大小
# color :控制文本的字体颜色
)
#控制标题
plt.title('不同岗位数量在全国范围内所占的比例', fontsize=16, fontweight='bold')
plt.ylabel('', fontsize=16, fontweight='bold')
plt.show()
带图例的饼图:
图例代码
在控制饼图属性代码的后面加上
plt.legend(loc=2, bbox_to_anchor=(1.05,1.0),borderaxespad = 0.)
#导入第三方库
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集 df_1
df_1 = pd.read_csv("数据集.csv")
#解决中文字题显示不正常的问题
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
#重建索引数据
df_1.set_index('标签', inplace=True)
#将需要用的数据导入饼图
# autopct='%.2f%%' 显示数据为百分比
# df_1['数量'].plot.pie(autopct='%.2f%%')
df_1['数量'].sort_values().plot(kind = 'pie', # 选择图形类型
# pie 饼图
# bar 柱状图
figsize=(8, 8),
# 控制饼图的整体尺寸大小
autopct='%.1f%%', # 饼图中添加数值标签
# .1 & f :.1是保留一位小数,f是浮点数值类型
radius = 1, # 设置饼图的半径
startangle = 180, # 设置饼图的初始角度
counterclock = True, # 将饼图的顺序设置为顺时针方向
# title = '失信用户的受教育水平分布', # 为饼图添加标题
wedgeprops = {'linewidth': 1.5, 'edgecolor':'green'}, # 设置饼图内外边界的属性值,
#linewidth:控制的是边框的宽度
#edgecolor:控制边框颜色
textprops = {'fontsize':10, 'color':'black'} # 设置文本标签的属性值
# fontsize :控制文本的字体大小
# color :控制文本的字体颜色
)
#添加图例:最右上角的那个东西;
plt.legend(loc=2, bbox_to_anchor=(1.05,1.0),borderaxespad = 0.)
#控制标题
plt.title('不同岗位数量在全国范围内所占的比例', fontsize=16, fontweight='bold')
plt.ylabel('', fontsize=16, fontweight='bold')
plt.show()
输出图:(右上角的就是图例)
单图初级玩法,有兴趣的可以自己在开发点玩法,看了很多别的大佬的新奇玩法,感觉很有趣。限于种种原因,现在不多深入。
另外感谢,他这一版我的一些问题没有解决,在他这一版的基础上加以添加部分内容。