Matplotlib里有两种画散点图的方法,一种是用ax.plot画,一种是用ax.scatter画。
一. 用ax.plot画
ax.plot(x,y,marker="o",color="black")
二. 用ax.scatter画
ax.scatter(x,y,marker="o",s=sizes,c=colors)
ax.plot和ax.scatter的区别:
ax.plot:各散点彼此复制,因此整个数据集中所有的点只需配置一次颜色和大小。对大型数据集而言,ax.plot方法效率更高。
ax.scatter:灵活性高,可以单独控制每个散点,使其具有不同的属性(大小,填充颜色,边框颜色等)。
下面利用Nathan Yau所著的《鲜活的数据:数据可视化指南》一书中的数据,学习画图。
数据地址:http://datasets.flowingdata.com/flowingdata_subscribers.csv (用于散点图)
http://datasets.flowingdata.com/crimeRatesByState2005.csv(用于气泡图)
准备工作:先导入matplotlib和pandas,用pandas读取csv文件,然后创建一个图像和一个坐标轴
import pandas as pd
from matplotlib import pyplot as plt
subscriber=pd.read_csv(r"http://datasets.flowingdata.com/flowingdata_subscribers.csv")
fig,ax=plt.subplots()
让我们先看看第一个数据文件的前5行:
Date Subscribers Reach Item Views Hits
0 01-01-2010 25047 4627 9682 27225
1 01-02-2010 25204 1676 5434 28042
2 01-03-2010 25491 1485 6318 29824
3 01-04-2010 26503 6290 17238 48911
4 01-05-2010 26654 6544 16224 45521
我们把文件中的订阅人数根据日期的推进画出来:
import pandas as pd
from matplotlib import