会记录一些最基本的matplotlib的使用方法,画一些诸如,条形图,折线图,散点图等
直接上代码,注释应有尽有…
也算是是学习唐宇迪课程的笔记
import pandas as pd
import numpy as np
unrate=pd.read_csv("pandas_data/unrate.csv")
unrate['DATE']=pd.to_datetime(unrate['DATE']) #进行标准的时间转换,把时间转换成标准的时间格式
#print(unrate.head(12))
import matplotlib.pyplot as plt
#画一张失业率和月份的关系图
#plt.show()
first_twelve=unrate[:12]
plt.plot(first_twelve['DATE'],first_twelve['VALUE']) #左边的就是x周,右边就是y轴
plt.xticks(rotation=45 ) #对横坐标显示的值进行一个旋转,因为横着写可能写不下
plt.xlabel('Month') #指定坐标轴的名字
plt.ylabel('Unemployment Rate') #指定y轴的名字
plt.title("A title") #图形的名字
plt.show()
#画子图,一个图一条线
#fig.add_subplot(4,1,x) 4行一列, 从左到右,从上到下
fig1=plt.figure()
fig2=plt.figure(figsize=(3,6)) #指定大小 第一个是横向 第二个是纵向
ax1=fig1.add_subplot(2,2,1)
ax2=fig1.add_subplot(2,2,2)
ax3=fig1.add_subplot(2,2,4) #添加子图,2,2即两行两列,1,2,4即为第几个
#在不同子图上画图
ax1.plot(np.random.randint(1,10,5),np.arange(5))
ax2.plot(np.arange(10)*3,np.arange(10))
plt.show()
#一幅图画多条线 例1
unrate["MONTH"]=unrate["DATE"].dt.month
fig=plt.figure(figsize=(6,3))
plt.plot(unrate[0:12]["MONTH"],unrate[0:12]["VALUE"],c="red")
plt.plot(unrate[12:24]["MONTH"],unrate[12:24]["VALUE"],c="blue")
plt.show()
#给线条加备注
fig=plt.figure(figsize=(10,6))
colors=['red','blue','green','orange','black']
unrate["MONTH"]=unrate["DATE"].dt.month #这里把具体的日期舍去,而只保存月份
print(unrate["MONTH"])
for i in range(5):
start=i*12
end=i*12+12
subset=unrate[start:end]
label=str(1988+i) #指定了label
plt.plot(subset['MONTH'],subset['VALUE'],c=colors[i],label=label,linewidth=10)
plt.legend(loc="upper left") #这个指令在图中加上显示板,显示线条的label。loc是指位置
plt.legend(loc="best")
#print(help(plt.legend))
plt.show()
#条形图
bar_heights=norm_reviews.ix[0,cols].values #取出字表的第一行 作为高度
print(bar_heights)
bar_positions=np.arange(5)+1 #柱状图的位置,离左边有多远 作为位置
print(bar_positions)
fig,ax=plt.subplots() #声明子柱状图
#ax.bar(bar_positions,bar_heights,0.3) #画图,0.3是柱宽,竖图
ax.barh(bar_positions,bar_heights,0.3) #画个横图
plt.show()
#散点图
fig,ax=plt.subplots()
ax.scatter(norm_reviews["Fandango_Ratingvalue"],norm_reviews["RT_user_norm"])
print(norm_reviews["Fandango_Ratingvalue"])
print(norm_reviews["RT_user_norm"])
ax.set_xlabel('fandango')
ax.set_ylabel('rotten tomatoes')
plt.show()