用python的matplotlib库绘制柱状图、折线图、饼图

平常我们使用的office组件中的Excel就有比较强大的绘图功能,而且可以进行多种图像,比如柱状图、折线图、扇形图,甚至散点图的自由切换,甚至连文本文档Word都可以做出一些简单的图像。但是它们画出的图像都比较固定,相对来说功能比较小。

今天我们来介绍python中的一种重要的绘图库——matplotlib。
matplotlib库是python的第三方库,如果安装的是python的IDLE,则需要额外安装。一般我们安装的是Anaconda(python的集成开发环境)已经内置,不需要额外安装。

  1. 柱状图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文
x=[i for i in range(1,6)]
y=[2,4,3,6,7]
plt.bar(x,y,color='r',width=0.3)
plt.show()

效果如图
在这里插入图片描述
这是最简单的柱状图,甚至可以去掉第三行

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文
y=[2,4,3,6,7]
plt.bar(x,y,color='r',width=0.3)
plt.show()

效果相同,此时会默认创建横坐标

  • 加标签
plt.xlabel('得分')
plt.ylabel('人数')
  • 加标题
plt.title('成绩分析图')
  • 自定义横坐标标签
heng=['小明','小红','小刚','小芳','小雨']
plt.bar(x,y,color='r',tick_label=heng,width=0.3)
  • 转动柱状图方向
plt.barh(x,y,color='r',tick_label=hen,height=0.3)
  • 保存图片到本地同一目录下
plt.savefig('picture.png')

要想增加图片的清晰度,可以设置dpi的大小

plt.savefig('picture.png',dpi=300)
  • 完整代码
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] 

x=[i for i in range(1,6)]
y=[2,4,3,6,7]
heng=['小明','小红','小刚','小芳','小雨']
plt.bar(x,y,color='r',tick_label=heng,width=0.3)
plt.xlabel('同学')
plt.ylabel('分数')
plt.title('成绩分析图')
plt.savefig('picture.png')
plt.show()

在这里插入图片描述
核心代码只有一句

plt.bar(x,y,color='r',tick_label=heng,width=0.3)
  1. 折线图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] 
y1=[1127968,1193973  ,1330385  ,1211292 , 1365868]

y2=[950600 , 967387  ,1102495 , 992571  ,1132938]

y3=[ 797236 , 872468  ,922418,  896010  ,950669]

y4=[405868  ,540142 , 682967  ,774129  ,789672]
x=[1,2,3,4,5]
plt.plot(x,y1,'r*--',linewidth=2.5,label='会员A')
plt.plot(x,y2,'b*--',linewidth=2.5,label='会员B')
plt.plot(x,y3,'g*--',linewidth=2.5,label='会员C')
plt.plot(x,y4,'y*--',linewidth=2.5,label='会员D')
plt.xlabel('天数')
plt.ylabel('伤害')
plt.legend()
plt.title('会员们的伤害变化')
plt.show()

在这里插入图片描述

控制线条粗细的变成了linewidth。

  • 加图例
plt.plot(x,y1,'r*--',linewidth=2.5,label='会员A')
plt.legend()

其中的’r*–’, ‘r’代表颜色,’*'代表,‘- -’代表曲线的样式是虚划线。

  • 颜色
字母 对应颜色
r 红色
b 蓝色
g 绿色
y 黄色
k 黑色
w 白色
m 紫色
c 青色

实际上也可以用red,green,yellow等等表示颜色。

  1. 离散数据点型
符号 表示
. 黑点
+ 加号
* 星号
o 实心圆点
d 菱形
p 五角星
h 六角星
x X号
s 方块
  1. 连续线型
符号 表示
- 实线
- - 虚划线
虚线
-. 点划线
  1. 饼图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] 
d={
    
    '美国': 1368036, '英国':223060, '法国':176970, '巴西': 163510, '意大利':219070, 
   '俄罗斯':221344, '德国': 171999, '西班牙':268143, '土耳其':138657, '伊朗':109286,
   '其他':1069769}
a = sorted(d.items(), key=lambda x: x[1],reverse=True)
a=dict(a)   #处理数据
size=a.values()    #提取出数字
color=['red','blue','green','pink','orange','purple','yellow']   #分配颜色,若颜色不够,会循环已有的颜色
label=a.keys()   #提取出国家
explode=(0.05,0,0,0,0,0,0,0,0,0,0)
pie=plt.pie(size,explode=explode,colors=color,labels=label,
        autopct='%1.1f%%',startangle=90,counterclock=False)
        #核心代码
plt.show()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46530492/article/details/108230234