mlt 常用图表

#折线图    plt.plot()
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('data.xls')
#print(df.head(5))
x1=df['姓名']
y1=df['语文']
y2=df['数学']
y3=df['英语']
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['xtick.direction']='out'
plt.title('成绩表')
plt.plot(x1,y1,label='语文',color='r',marker='p',mfc='b',ms=10,linestyle='-.')           #marker标记点  mfc标记点的颜色  ms点大小
plt.plot(x1,y2,label='数学',color='b',alpha=0.2)            #alpha透明度
plt.fill_between(x1,y1,y2,facecolor='y')          #中间区域上色
plt.plot(x1,y3,label='英语')
plt.grid(axis='y')
plt.legend(['语文','数学','英语'])
#柱状图       plt.bar()
# import pandas as pd
# import matplotlib.pyplot as plt
# df=pd.read_excel('books.xlsx')
# #print(df.head())
# plt.rcParams['font.sans-serif']=['SimHei']
# x=df['年份']
# height=df['销售额']
# plt.grid(axis='y')
# plt.xlabel('年份')
# plt.ylabel('线上销售额')
# plt.title('图书销售分析图')
# plt.bar(x,height,width=0.5,align='center',color='r',alpha=0.5)
# for a,b in zip(x,height):
#     plt.text(a,b,format(b,','))                    #format()设置成千位分隔符格式
# plt.legend(('销售额',))

#多柱形图
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('books.xlsx',sheet_name='Sheet2')
#print(df.head())
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')
for a,b in zip(x,y1):
    plt.text(a,b,format(b,','),ha='center',va='bottom',fontsize=8)
for a,b in zip(x,y2):
    plt.text(a,b,format(b,','))
for a,b in zip(x,y3):
    plt.text(a,b,format(b,','))
plt.legend(['京东','天猫','自营'])
#直方图/质量分布图        plt.hist()
import pandas as pd
import matplotlib.pyplot as plt
# x=[22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]
# plt.hist(x, bins = [0,50,100])              #bins()统计数据的区间分布
df = pd.read_excel('grade1.xls')
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码
x=df['得分']
plt.xlabel('分数')
plt.ylabel('学生数量')
# 显示图标题
plt.title("高一数学成绩分布直方图")
plt.hist(x, bins = [0,25,50,75,100,125,150],facecolor="blue", edgecolor="black", alpha=0.7)
#饼形图   plt.pie()
# import matplotlib.pyplot as plt
# x=[2,5,12,70,2,9]               #每一块的比例,和大于1则归一化
# plt.pie(x,autopct='%1.1f%%')

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,# 设置百分比标签与圆心的距离
        shadow=True,      #阴影
        wedgeprops={'width':0.4,'edgecolor':'k'})       #环形图,与分裂图不可同时
       # explode = (0.1,0.1,0,0,0,0,0,0,0.1,0))  #设置分裂饼图
        #explode = (0.1,0,0,0,0,0,0,0.1,0.1,0))  #设置多分裂饼图
# 设置x,y轴刻度一致,保证饼图为圆形
plt.axis('equal')
plt.title('2020年1月各地区销量占比情况分析')
#散点图      plt.scatter()
import pandas as pd
import matplotlib.pyplot as plt
aa =r'JDdata.xls'
bb=r'JDcar.xls'
dfaa = pd.DataFrame(pd.read_excel(aa))
dfbb=pd.DataFrame(pd.read_excel(bb))
df1=dfaa[['业务日期','金额']]
df2=dfbb[['投放日期','支出']]
#去除空日期和金额为0的记录
df1=df1[df1['业务日期'].notnull() & df1['金额'] !=0]
df2=df2[df2['投放日期'].notnull() & df2['支出'] !=0]
df1['业务日期'] = pd.to_datetime(df1['业务日期'])
df2['投放日期'] = pd.to_datetime(df2['投放日期'])
dfData = df1.set_index('业务日期',drop=True)
dfCar=df2.set_index('投放日期',drop=True)
# 按月度统计并显示销售金额
dfData_month=dfData.resample('M').sum().to_period('M')
# 按月度统计并显示广告费支出金额
dfCar_month=dfCar.resample('M').sum().to_period('M')
#x为广告费用,y为销售收入
x=pd.DataFrame(dfCar_month['支出'])
y=pd.DataFrame(dfData_month['金额'])
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码
plt.title('销售收入与广告费散点图')   #图表标题
plt.scatter(x, y,  color='red') #真实值散点图
#面积图   plt.stackplot()
# import pandas as pd
# import matplotlib.pyplot as plt
# df = pd.read_excel('books.xlsx')
# plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码
# x=df['年份']
# y=df['销售额']
# #图表标题
# plt.title('2013-2019年线上图书销售情况')
# plt.stackplot(x, y)
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['自营']
#图表标题
plt.title('2013-2019年线上图书销售情况')
plt.stackplot(x, y1,y2,y3,colors=['#6d904f','#fc4f30','#008fd5'])
#图例
plt.legend(['京东','天猫','自营'],loc='upper left')
#热力图    plt.imshow()
# import matplotlib.pyplot as plt
# X = [[1,2],[3,4],[5,6],[7,8],[9,10]]         #颜色对应值
# plt.imshow(X)
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('data1.xls',sheet_name='高二一班')
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码
X = df.loc[:,"语文":].values
print(X)
name=df['姓名']
plt.imshow(X)
plt.xticks(range(0,6,1),['语文','数学','英语','物理','化学','生物'])#设置x轴刻度标签
plt.yticks(range(0,12,1),name)#设置y轴刻度标签
plt.colorbar()  #显示颜色条
plt.title('学生成绩统计热力图')
#多子图
#subplot() 多次调用
# import matplotlib.pyplot as plt
# #第1个子图表-折线图
# plt.subplot(2,2,1)
# plt.plot([1, 2, 3, 4,5])
# #第2个子图表-散点图
# plt.subplot(2,2,2)
# plt.plot([1, 2, 3, 4,5], [2, 5, 8, 12,18], 'ro')
# #第3个子图表-柱形图
# plt.subplot(2,1,2)
# x=[1,2,3,4,5,6]
# height=[10,20,30,40,50,60]
# plt.bar(x,height)

#subplots() 直接创建画布和子图
# import matplotlib.pyplot as plt
# figure,axes=plt.subplots(2,2)
# axes[0,0].plot([1, 2, 3, 4,5])  #折线图
# axes[0,1].plot([1, 2, 3, 4,5], [2, 5, 8, 12,18], 'ro')#散点图
# #柱形图
# x=[1,2,3,4,5,6]
# height=[10,20,30,40,50,60]
# axes[1,0].bar(x,height)
# #饼形图
# x = [2,5,12,70,2,9]
# axes[1,1].pie(x,autopct='%1.1f%%')

#add_subplot()
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,3,1)
ax2 = fig.add_subplot(2,3,2)
ax3 = fig.add_subplot(2,3,3)
ax4 = fig.add_subplot(2,3,4)
ax5 = fig.add_subplot(2,3,5)
ax6 = fig.add_subplot(2,3,6)

#plt.savefig('aa.png')    代码必须在plt.show()之前

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值