import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,3*np.pi,0.1)
y = np.sin(x)
plt.plot(x,y) # 用列表也行,但是用列表想计算正弦就很难了
plt.show() # 在spyder等图形界面的环境下不加plt.show()也能出图,但在命令行环境下就必须加这句话才会弹出图窗
掌握了以上用法,就会最基本的画图了,但就跟会print('hello, world!')
一样。(/捂脸笑)
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,3*np.pi,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
# 打开一个10*6英寸,编号'89757'的图窗
plt.figure(num='89757',figsize=(10,6))
# 设置线条形状和标记的形状、线宽和标记的大小、颜色
plt.plot(x,y1,linestyle='-.',marker='o',linewidth=0.5,markersize=3,color='r')
plt.plot(x,y2,linestyle='--',marker='^',linewidth=0.5,markersize=3,color='g')
# 设置标题和横纵坐标的范围,lim是limit的缩写
plt.title('plot')
plt.xlim((0,3*np.pi))
plt.ylim((-1,1))
# 设置横纵标签文本以及距离坐标轴的距离,以及旋转角度,y轴默认90°
plt.xlabel('x', labelpad=5)
plt.ylabel('y', labelpad=5, rotation=0)
# 设置网格和图例
plt.grid(b=True,which='major',axis='y',linestyle=':',color='y')
plt.legend(('y=sin(x)','y=cos(x)'))
# 绘图
plt.show() # 在spyder等图形界面的环境下不加plt.show()也能出图,但在命令行环境下就必须加这句话才会弹出图窗
import matplotlib.pyplot as plt
import numpy as np
# 支持中文
plt.rcParams['font.sans-serif']=['SimHei']
# 开图窗
fig = plt.figure(num=1,figsize=(8,6),facecolor='w',frameon=True)
ax = fig.add_subplot(111)
# 夜空
ax.patch.set_color('darkblue')
# 星星
N=20
plt.scatter(np.random.rand(N), np.random.rand(N),c='k',s=50,marker='*')
plt.scatter(np.random.rand(N), np.random.rand(N),c='r',s=10,marker='*')
plt.scatter(np.random.rand(N), np.random.rand(N),c='g',s=100,marker='*')
plt.scatter(np.random.rand(N), np.random.rand(N),c='pink',s=70,marker='*')
plt.scatter(np.random.rand(N), np.random.rand(N),c='y',s=120,marker='*')
'''
marker=['.',',','o','v','^','<','>','1','2','3','4','s','p','*','h','H','+',
'x','D','d','|','_','.',','] # marker标记的样式库,具体长啥样自己试一下就知道了
'''
# 设置标题和横纵坐标的范围
plt.title('繁星')
plt.xlim((0,1))
plt.ylim((-1,1))
# 关掉坐标标签和坐标刻度线
plt.xlabel('')
plt.ylabel('')
plt.xticks(())
plt.yticks(())
# 绘图
plt.show() # 在spyder等图形界面的环境下不加plt.show()也能出图,但在命令行环境下就必须加这句话才会弹出图窗
# 导入绘图模块
import matplotlib.pyplot as plt
import numpy as np
# 构建数据
Y2016=[15600,12700,11300,4270,3620]
Y2017=[17400,14800,12000,5200,4020]
labels=['Beijing', 'Shanghai','HongKong','Shenzhen', 'Guangzhou']
bar_width=0.5
plt.figure(figsize=(10,6))
#设置条形颜色、透明度、宽度
plt.bar(np.arange(5),Y2016,label='2016',color='yellow',alpha=0.8,width=bar_width)
plt.bar(np.arange(5)+bar_width,Y2017,label='2017',color='black',alpha=0.8,width=bar_width)
#添加轴标签
plt.xlabel('Top5City',fontproperties='Times New Roman',fontsize=16)
plt.ylabel('Family Amount',fontproperties='Times New Roman',fontsize=16)
plt.xticks(np.arange(5)+bar_width,labels)
plt.ylim([2500,20000])
plt.yticks(fontproperties='Times New Roman', size=14)
plt.xticks(fontproperties='Times New Roman',size=14)
#添加标题
plt.title('Millions Family AmountTop5City Distribution ',fontproperties='Times New Roman', fontsize=16)
#为每个条形图添加数值标签
for x2016,y2016 in enumerate(Y2016):
plt.text(x2016-0.25,y2016+100,'%s'%y2016)
for x2017,y2017 in enumerate(Y2017):
plt.text(x2017+0.2,y2017+100,'%s'%y2017)
#显示图例
plt. legend()
plt. show()
# 导入绘图模块
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(10,6))
# 构造数据,调整数据顺序,以免低占比的饼块相邻,无法分辨
edu=[0.2515,0.0057,0.3724,0.3336,0.0368]
labels=['HighSchool','Others','Junior College','Eachelor','Master']
explode=[0,0,0.1,0,0]#用于分离突出显示大专学历人群
colors=['#61666f','#000000','#6f6f6f','#9f9f9f','#cfcfef']
# 黑白灰度显示颜色
# 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆
plt.axes(aspect='equal')
# 控制x轴和y轴的范围
plt.xlim(0,4)
plt.ylim(0,4)
# 绘制饼图
plt.pie(x=edu,#绘图数据
explode=explode,#突出显示大专人群
labels=labels,#添加教育水平标签
colors=colors,#设置饼图的自定义填充色
autopct='%.1f%%',#设置百分比的格式,这里保留一位小数
pctdistance=0.5,#设置百分比标签与圆心的距离
labeldistance=1.0,#设置教育水平标签与圆心的距离
startangle=180,#设置饼图的初始角度
radius=1.5,#设置饼图的半径
counterclock=False,#是否逆时针,这里设置为顺时针方向
wedgeprops={'linewidth':1.5,'edgecolor':'green'},#设置饼图边界的属性值
textprops={'fontsize':20,'color':'k'},#设置文本标签的属性值
center=(1.8,1.8),#设置饼图的原点
frame=True) #是否显示饼图的图框,这里设置显示
#删除x轴和y轴的刻度
plt.xticks(())
plt.yticks(())
plt.show()