matplotlib的图像都位于figure对象中,相当于一块画布。figure的属性figsize是用来设置figure的大小的。subplot是用来存放坐标系的,一个figure中可以有多个subplot。
ax3=fig.add_subplot(2,2,3)
在程序开头加(%matplotlib)是为了显示figure,如果不加则不会跳出figure图框。而(%matplotlib inline)则是直接显示在编程界面,不重新跳出做图框。
plt.plot(randn(50).cumsum(),"k--")
ax1.hist(randn(100),bins=20,color='k',alpha=0.3)#在ax1上作图
ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))#在ax2上作图
fig,axes=plt.subplots(2,3)
_=axes[0,1].hist(randn(100),bins=20,color='k',alpha=0.3)#加“_=”视为让其不输出randn产生的随机数组
调整subplot周围的间距:默认情况下,matlibplot会在subplot外围以及sbuplot之间留下一定的边距。图像的大小和间距是相关的,如果你调整了图像大小,间距也会自动调整。利用Figure的subplots_adjust方法可以用来修改间距。
plt.subplots_adjust(left=None,right=None,top=None,bottom=None,wspace=None,hspace=None)#分别表示左右上下边距,以及宽度和高度百分比。
02|颜色,标记和线型:
常用颜色用英文字母的首字母来代替。
b---blue c---cyan g---green k----black
m---magenta r---red w---white y----yellow
标记是用在线性图上来强调实际数据点的。
.Point marker
, Pixel marker
o Circle marker
v Triangle down marker
^ Triangle up marker
Triangle left marker
Triangle right marker
1 Tripod down marker
2 Tripod up marker
3 Tripod left marker
4 Tripod right marker
s Square marker
p Pentagon marker
* Star marker
h Hexagon marker
H Rotated hexagon D Diamond marker
d Thin diamond marker
| Vertical line (vlinesymbol) marker
_ Horizontal line (hline symbol) marker
+ Plus marker
x Cross (x) marker
线性是表示线的形状。
- 实线
-- 短线
-. 短点相间线
: 虚点线
plot(randn(30).cumsum(),color="k",line style="--",marker="o")
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum())
ticks=ax.set_xticks([0,250,500,750,1000])#设置x轴的刻度,y轴把x换成y即可
lables=ax.set_xticklabels(["one","two","three","four","five"],rotation=30,fontsize="small")#设置x轴对应的标签,y轴把x换成y即可
ax.set_title("my first matplotlib plot")#为坐标轴设置标题
在添加subplot的时候传入label参数,然后调用ax.legend()或plt.legend()即可。
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(),label="one")#创建label标签
ax.plot(randn(1000).cumsum(),label="two")#创建label标签
ax.plot(randn(1000).cumsum(),label="three")#创建label标签
ax.legend(loc="best")#loc是用来说明图例的放置位置
matplotlib是一种比较低级的工具,要组装一张图表,需要用到它的各种组件才可以,包括图表类型(线型图、柱状图、盒形图、散布图、等值线图等)、图例、标题、刻度标签以及其他注释信息。这是因为制作一张完整的图表都需要用到这些,但是matplotlib要实现这种功能需要很多行代码,而pandas可能只需要几行代码就可以搞定。
线型图:Series和DataFrame都有自己的plot方法,plot默认创建的是线形图,Series.plot()和DataFrame.plot()。
柱状图:需要给plot方法传入参数kind,其中kind="bar"表垂直柱状图、kind="barh"表水平柱状图。Series和DataFrame的索引将会被用作X(或Y)轴的刻度。柱状图中有个特例就是堆积柱状图,只需要给plot传入参数stacked="True"即可。还可以利用s.value_counts().plot(kind="bar")来图形化显示Series中各值出现的频率。
直方图:是一种可以对值频率离散化显示的柱状图。通过调用Series.hist()方法即可创建。
密度图:与直方图相关的一种类型图,是通过计算“可能会产生观测数据的连续概率分布的估计”而产生的,通过给plot传入参数kind="kde"即可。
散布图:是观测两个一维数据序列之间关系的有效手段,使用pd.scatter_matrix()即可建立。
推荐阅读
函数 | 这8组Excel函数,帮您解决工作中80%的难题
国外公司是如何挖掘社交媒体数据的?
大数据舆情情感分析,如何提取情感并使用什么样的工具?(贴情感标签)
【干货】Pandas速查手册中文
四步搭建企业服务数据分析体系
【进阶】代码这样写不止于优雅( Python 版)
【干货】找不到适合自己的编程书?我自己动手写了一个热门编程书搜索网站(附PDF书单)
数据分析入门案例:泰坦尼克号幸存率研究
玩转Excel动态图表,必须学会的3个套路
盘点 | 2017 最“热”门的十大数据技术
还留在北京的,都是没有退路的
数据分析听着学:10个不可错过的数据相关优质播客
【进阶】Excel 数据透视表,10 个不得不说的秘密
数据科学家VS数据工程师,真的是一山不容二虎?
专访 ▏陈春宝——大数据应该如何更接地气儿?
【扫盲】如何区分人工智能,机器学习和深度学习