平常我们使用的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()