python画饼图柱状图_Matplotlib-绘制饼图、柱状图、散点图

一、使用Matplotlib提供的pie()函数绘制饼图:

import matplotlib.pyplot as plt

plt.figure(figsize=(10,10))

data = [0.12,0.2341,0.4355,0.6778,0.0234,0.22,0.3341]

labels = ['Java','Python','A','B','C','D','E']

colors = ['red','pink','purple','orange']

explode = [0,0,0.3,0,0,0,0]

plt.xlim(0,12)

plt.ylim(0,12)

plt.axis(aspect = 'equal')

plt.pie(x = data,#数据

explode = explode,#突出显示

labels=labels,#标签

colors = colors,#颜色

autopct = '%.3f%%',#百分比设置显示位数

startangle=180,#设置饼图的初始角度

labeldistance=1.3,#设置标签与圆心的距离

pctdistance=0.8,#设置百分比标签与圆心的距离

center = (6,6),#圆心的位置

radius= 4,#设置饼图的半径

counterclock=False,#是否为逆时针方向 False为顺时针

wedgeprops={'linewidth':0.1,'edgecolor':'green'},#内外边界的属性设置

textprops={'fontsize':15,'color':'black'},#设置文本标签的属性

frame = 1)#是否显示饼图的外方框,此处显示

plt.xticks(())#不显示坐标

plt.yticks(())#不显示坐标

plt.show()

二、使用Matplotlib提供的bar()函数绘制柱状图,如果希望生成多组柱状图,可通过多次调用bar()函数来实现。

import matplotlib.pyplot as plt

# 解决中文乱码问题

plt.rcParams['font.sans-serif'] = ['Simhei']

x_data = ['2011','2012','2013','2014','2015','2016','2017']

#定义两个列表分别作为y轴数据

y_data = [58000,60200,63000,71000,84000,90500,107000]

y_data2 = [52000,50200,53000,61000,74000,80500,97000]

bar_width = 0.3

#传入两组分别代表X,Y轴的数据

plt.bar(np.arange(len(x_data)),y_data,label = '疯狂Java讲义',color = 'steelblue',alpha = 0.8,width = bar_width)

plt.bar(np.arange(len(x_data))+bar_width+0.05,y_data2,label = '疯狂Python讲义',color = 'indianred',alpha = 0.8,width = bar_width)

for x,y in enumerate(y_data):

plt.text(x,y+1000,'%s'%y,ha = 'center',va = 'bottom')#x,y控制输出的位置,第三个参数控制输出的内容,va垂直对齐方式,ha水平对齐方式

#由于x轴为字符串,所有x表示索引值,0为第一个条柱所在的位置

for x,y in enumerate(y_data2):

plt.text(x+bar_width,y+1000,'%s'%y,ha = 'center',va = 'bottom')

plt.xlabel('年份')

plt.ylabel('销量')

plt.title('销售情况对比图')

plt.legend()

plt.xticks(np.arange(len(x_data))+bar_width/2,labels = x_data)

plt.show()

使用np.arange(len(x_data))+bar_width+0.05作为横坐标绘图后,如果想显示年份,可以重新设置刻度显示为年份

plt.xticks(np.arange(len(x_data))+bar_width/2,labels = x_data)

三、水平柱状图与纵向柱状图使用方法一致,使用barh()绘图即可。

四、散点图与折线图的区别是,只绘制散点,不对点连接。使用scatter()函数绘制。参数说明:

x:指定X轴数据

y:指定y轴数据

s:指定散点的大小

c:指定散点的颜色

alpha:指定散点的透明度

linewidths:指定散点边框线的宽度

edgecolors:指定散点边框的颜色

marker:指定散点的图形样式

cmap:指定散点的颜色映射,会使用不同颜色来区分散点的值

import numpy as np;import matplotlib.pyplot as plt

x_data = np.linspace(-np.pi,np.pi,64,endpoint = True)

plt.scatter(x_data,np.sin(x_data),marker = 'p',c = 'purple',s = 50,alpha = 0.5,linewidths=1,edgecolors=['green','yellow'])

plt.scatter(x_data[0],y = np.sin(x_data)[0],c = 'red',s = 150,alpha = 1)

plt.scatter(x_data[63],y = np.sin(x_data)[63],c = 'black',s = 150,alpha = 1)

plt.title('正弦曲线的散点图')

gc = plt.gca()

gc.spines['right'].set_color('none')

gc.spines['top'].set_color('none')

gc.spines['bottom'].set_position(('data',0))

gc.spines['left'].set_position(('data',0))

plt.show()

你可能感兴趣的:(python画饼图柱状图)