matplotlib基本作图方法小结

matplotlib作为python的基本绘图包,用起来还是挺方便的,与matlab大同小异。个人觉得比matlab的图稍微好看一些。科研中用的最多的还是折线图,下面是其基本用法:

import matplotlib.pyplot as plt

x = [1,2,3,10]
y = [8,5,4,12]
#可用字符串表示线的样式,比如"b^-",ms是标记大小,label是图例
#还可以根据需求设置线的粗细等其他样式
plt.plot(x,y,"b^-",ms="6",label="mylabel")
#设置横纵坐标轴的范围
plt.xlim(-2,12)
plt.ylim(2,14)
#设置横纵坐标轴标签
plt.xlabel("x")
plt.ylabel("y")
#设置标题
plt.title("mytitle")
plt.legend()
#画网格线,默认横纵坐标轴都画,grid(axis="y")表示只画y轴
plt.grid()
plt.show()

自定义坐标轴

有时我们想自定义坐标轴,比如想让上图点的横坐标等距分布,可以使用xticks():
import matplotlib.pyplot as plt

x = [1,2,3,10]
y = [8,5,4,12]
#可用字符串表示线的样式,比如"b^-",ms是标记大小,label是图例
#还可以根据需求设置线的粗细等其他样式
plt.plot([2,4,6,8],y,"b^-",ms="6",label="mylabel")
plt.xticks([2,4,6,8],x)
#设置横纵坐标轴的范围
plt.xlim(-2,12)
plt.ylim(2,14)
#设置横纵坐标轴标签
plt.xlabel("x")
plt.ylabel("y")
#设置标题
plt.title("mytitle")
plt.legend()
#画网格线,默认横纵坐标轴都画,grid(axis="y")表示只画y轴
plt.grid()
plt.show()

双y轴

有时我们需要在一张图上画具有不同y轴的线:

import matplotlib.pyplot as plt

x1 = [1,2,3,10]
y1 = [8,5,4,12]
x2 = [2,4,8,10]
y2 = [800,600,500,650]

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_xlabel("x")
ax1.set_ylabel("y1")
ax1.plot(x1,y1,"o-")
ax1.set_ylim(2,14)

ax2 = ax1.twinx()
#这里用到了一个小技巧,重复画两次y2,后一次把前一次覆盖了
#这样可以让两条线看似在一个图例中显示,比分开显示图例好看些
ax2.plot(x2,y2,"o-",ms="5",label="y1")
ax2.plot(x2,y2,"s-",label="y2")
ax2.set_ylim(400,1000)
ax2.set_ylabel("y2")

plt.xlim(0,12)
plt.title("mytitle")
plt.legend()
plt.grid(axis="y")
#图标注释
ax1.annotate('point',xy=(5,5.8),xytext=(7,7),
    arrowprops=dict(arrowstyle="->",connectionstyle="arc3"))
plt.show()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值