平常我们使用的office组件中的Excel就有比较强大的绘图功能,而且可以进行多种图像,比如柱状图、折线图、扇形图,甚至散点图的自由切换,甚至连文本文档Word都可以做出一些简单的图像。但是它们画出的图像都比较固定,相对来说功能比较小。
今天我们来介绍python中的一种重要的绘图库——matplotlib。
matplotlib库是python的第三方库,如果安装的是python的IDLE,则需要额外安装。一般我们安装的是Anaconda(python的集成开发环境)已经内置,不需要额外安装。
- 柱状图
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)
- 折线图
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等等表示颜色。
- 离散数据点型
符号 | 表示 |
---|---|
. | 黑点 |
+ | 加号 |
* | 星号 |
o | 实心圆点 |
d | 菱形 |
p | 五角星 |
h | 六角星 |
x | X号 |
s | 方块 |
- 连续线型
符号 | 表示 |
---|---|
- | 实线 |
- - | 虚划线 |
: | 虚线 |
-. | 点划线 |
- 饼图
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()
网友评论