从头开始学python:如何用Matplotlib绘图表
Matplotlib是一个用于绘制图表的库。如果你有用过python处理数据,那Matplotlib可以更直观的帮你把数据展示出来。直接上代码看例子:
import matplotlib.pyplot as plt
# 其中1/3/4是横坐标,4,5,7是对应的纵坐标
plt.plot([1,3,4],[4,5,7])
plt.show()
配合numpy使用
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi,np.pi,100)#从-pi到pi,间隔100个元素
plt.plot(x,np.sin(x))
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi*2,np.pi*2,100)#从-pi到pi,间隔100个元素
plt.figure(1,dpi=50)# 创建图表1,精度50
for i in range(1,5):
plt.plot(x,np.sin(x/i))
plt.show()
直方图统计次数
import matplotlib.pyplot as plt
import numpy as np
plt.figure(1,dpi=50)# 创建图表1,精度50
data = [1,2,3,4,3,2,3,2,1,1,1,3,4,2,5]
plt.hist(data)
plt.show()
散点图
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1,10)
y = x
fig = plt.figure()
plt.scatter(x,y,c='r',marker='o')#c='r'表示红色,marker表示指定点的形状
plt.show()
与pandas的配合使用
pandas获取数据,用matplotlib绘制图
用excel生成一个表格命名为training.csv,内容如下:
然后使用pandas读取该表格,并生成图表
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
iris = pd.read_csv("./training.csv")#读取csv文件中的数据
print(iris.head()) # 读取前五行
iris.plot(kind='scatter',x='x',y='y')#x对应csv中的x列,y对应y列
plt.show()
配合使用seaborn
seaborn可对matplotlib的封装
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
iris = pd.read_csv("./training.csv")
#设置样式
sns.set(style="white",color_codes=True)
#设置绘制格式为散点图
sns.jointplot(x="x",y="y",data=iris,size=5)
#绘制曲线
sns.distplot(iris["x"])
#让pandas的plot在pycharm上显示
plt.show()
不同颜色的散点图
重新编写一个training.csv的excel文档,内容如下:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")#忽略警告
iris = pd.read_csv("./training.csv")
#设置样式
sns.set(style="white",color_codes=True)
#c是用来区分颜色的列
sns.FacetGrid(iris,hue="c",size=5).map(plt.scatter,"x","y").add_legend()
plt.show()