Python数据分析Day5--Matplotlib(2)

Matplotlib

柱状图

在这里插入图片描述

柱状图的绘制

**matplotlib.pyplot.bar(x,height,width:float=0.8,botton=None,*,align:str=‘center’,data=None,kwargs)
Python数据分析Day5--Matplotlib(2)_第1张图片
创建示例:

x=range(5)
data=[5,20,15,25,10]
#设置标题
plt.title("基本柱状图")
#设置网格
plt.grid(ls="--",alpha=0.5)
#bar绘制柱状图,x表示x坐标,data表示柱状图的高度,设置颜色循环红绿蓝
plt.bar(x,data,bottom=[10,20,5,0,10],color=['r','g','b'])


结果:
Python数据分析Day5--Matplotlib(2)_第2张图片
同一位置多柱状图的绘制

#国家
countries=['挪威','德国','中国','美国','瑞典']
#金牌个数
gold_medal=[16,12,9,8,8]
#银牌个数
silver_medal=[8,10,4,10,5]
#铜牌个数
bronze_medal=[13,5,2,7,5]
#1.将x轴转换为数值

x=np.arange(len(countries))
print(x)
#2.设置图形的宽度
width=0.2
#设置金银铜牌位置
gold_x=x
silver_x=x+width
bronze_x=x+2*width
#绘图
plt.bar(gold_x,gold_medal,width=width,color="gold")
plt.bar(silver_x,silver_medal,width=width,color="silver")
plt.bar(bronze_x,bronze_medal,width=width,color="saddlebrown")

#将标签居中,并显示国家名字(中文)
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.xticks(x+width,labels=countries)
#显示高度文本
for i in range(len(countries)):
    plt.text(gold_x[i],gold_medal[i],gold_medal[i],va="bottom",ha="center")
    plt.text(silver_x[i],silver_medal[i],silver_medal[i],va="bottom",ha="center")
    plt.text(bronze_x[i],bronze_medal[i],bronze_medal[i],va="bottom",ha="center")

结果:
Python数据分析Day5--Matplotlib(2)_第3张图片

水平柱状图barh()

**plt.barh(y,width,height=0.8,left=None,*,align=‘center’,kwargs)
例子:

#绘制一个关于10月动漫热度(并非真实数据)的水平堆叠图
anime=['死神','间谍过家家','电锯人','暗影大人']
#第一天
real_day1=np.array([300,2600,240,100])
#第二天
real_day2=np.array([3100,350,370,190])
#第三天
real_day3=np.array([390,310,2900,290])
#第四天
real_day4=np.array([300,300,280,2700])
#确定宽度
left_day2=real_day1
left_day3=real_day1+real_day2
left_day4=real_day1+real_day2+real_day3
#绘制图形
plt.barh(anime,real_day1)
plt.barh(anime,real_day2,left=left_day2)
plt.barh(anime,real_day3,left=left_day3)
plt.barh(anime,real_day4,left=left_day4)
#设置数值文本
sum_data=real_day1+real_day2+real_day3+real_day4
for i in range(len(anime)):
    plt.text(sum_data[i],anime[i],sum_data[i],va="center",ha="left")

结果:
Python数据分析Day5--Matplotlib(2)_第4张图片

直方图plt.hist()

Python数据分析Day5--Matplotlib(2)_第5张图片
Python数据分析Day5--Matplotlib(2)_第6张图片
Python数据分析Day5--Matplotlib(2)_第7张图片
例子:

#直方图
#创建一个画布
fig,ax=plt.subplots()
x_value=np.random.randint(140,190,300)
#绘制直方图
num,bins_limit,patches=plt.hist(x_value,bins=10,edgecolor='white')

#添加折线图
ax.plot(bins_limit[:10],num,'--',marker='o')

结果:
Python数据分析Day5--Matplotlib(2)_第8张图片

饼状图pie()

pyplot.pie(x,explode=None,laabels=None,colors=None,autopct=None)
Python数据分析Day5--Matplotlib(2)_第9张图片
例子:

##饼状图
#设置大小
plt.rcParams['figure.figsize']=(5,5)

#定义饼的标签
labels=['娱乐','育儿','饮食','房贷','交通','其他']
#每个标签所占的数量
x=[200,500,1200,700,200,900]

plt.title=("支出情况")
#绘制饼图
plt.pie(x,labels=labels,autopct='%.2f%%')



结果:
Python数据分析Day5--Matplotlib(2)_第10张图片

散点图 scatter()

Python数据分析Day5--Matplotlib(2)_第11张图片

x=np.random.rand(50)
y=np.random.rand(50)

s=(10*np.random.rand(50))**2
colors=np.random.rand(50)
plt.scatter(x,y,s,c=colors)

结果:
Python数据分析Day5--Matplotlib(2)_第12张图片

保存图片pyplot.savefig()

Python数据分析Day5--Matplotlib(2)_第13张图片

箱线图绘制boxplot()

Python数据分析Day5--Matplotlib(2)_第14张图片
Python数据分析Day5--Matplotlib(2)_第15张图片
例子:

x=np.array([1,2,3,4,5,3,4,3,2,4,5,5]).reshape(3,4)
print(x)
plt.boxplot(x,showmeans=True,meanline=True)
plt.grid()
plt.show()

结果:
Python数据分析Day5--Matplotlib(2)_第16张图片
matplotlib到此先结束
共勉

你可能感兴趣的:(python,matplotlib,数据分析)