Python绘图总结(Matplotlib篇)之图形分类及保存
学习https://matplotlib.org/gallery/index.html 记录,描述不一定准确,具体请参考官网
Matplotlib使用总结图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号import pandas as pd
import numpy as np
把图保存为文件
我们可以用plt.savefig来保存图。这个方法等同于直接在figure对象上调用savefig方法。例如,想要保存一个SVG版本的图片,键入:
`plt.savefig('figpath.svg)`
保存的文件类型通过文件名后缀来指定。即如果使用 .pdf做为后缀,就会得到一个PDF文件。这里有一些重要的设置,作者经常用来刊印图片:
- dpi,控制每英寸长度上的分辨率
- bbox_inches, 能删除figure周围的空白部分
比如我们想要得到一幅PNG图,有最小的空白,400 DPI,键入:
plt.savefig('figpath.png', dpi=400, bbox_inches='tight')
savefig不仅可以写入磁盘,还可以导出为任意像是文件一样的对象,比如BytesIO:
from io import BytesIO
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
看下图关于savefig更多的选项:

普通图形
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)rect = plt.Rectangle((0.2, 0.75), 0.4, 0.15, color='k', alpha=0.3)
circ = plt.Circle((0.7, 0.2), 0.15, color='b', alpha=0.3)
pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]],color='g', alpha=0.5)ax.add_patch(rect)
ax.add_patch(circ)
ax.add_patch(pgon)
地图
# 地形
plt.figure(dpi=128, figsize = (8,4))
m = Basemap(projection = 'mill',llcrnrlat = -90, # 左下角的纬度llcrnrlon = -180, # 左下角经度urcrnrlat = 90, # 右上角的纬度urcrnrlon = 180, # 右上角的经度resolution ='l' #分辨率)
m.drawcoastlines()
m.drawcountries(linewidth=2)
m.drawcounties(color='darkred')m.etopo() #地形
# m.bluemarble() # 大理石样式plt.title('Basemap Tutorial')
plt.show()
# 绘制坐标
plt.figure(dpi=128, figsize = (8,4))
m = Basemap(projection = 'mill',llcrnrlat = 25, # 左下角的纬度llcrnrlon = -130, # 左下角经度urcrnrlat = 50, # 右上角的纬度urcrnrlon = -60, # 右上角的经度resolution ='l' #分辨率
)m.drawcoastlines()
m.drawcountries(linewidth=2)
m.drawstates(color='b')xs = []
ys = []# 指定坐标坐五角星
NYClat, NYClon = 40.7127, -74.0059
xpt, ypt = m(NYClon, NYClat)
xs.append(xpt)
ys.append(ypt)
m.plot(xpt, ypt, 'r*', markersize=15)# 指定坐标坐三角形
LAlat, LAlon = 34.05, -118.25
xpt, ypt = m(LAlon, LAlat)
xs.append(xpt)
ys.append(ypt)
m.plot(xpt, ypt, 'g^', markersize=15)# 画直线
m.plot(xs, ys, color='r', linewidth=3, label='Flight 98')
# 画弧线
m.drawgreatcircle(NYClon, NYClat, LAlon, LAlat, color ='c', linewidth=3, label='Arc')plt.legend(loc=4)
plt.title('Basemap Tutorial')
plt.show()
地理相关
# 地理相关
fig = plt.figure(figsize=(14,8))ax1 = fig.add_subplot(221, projection="aitoff")
ax1.set_title("Aitoff")
ax1.grid(True)ax2 = fig.add_subplot(222, projection="hammer")
ax2.set_title("hammer")
ax2.grid(True)ax3 = fig.add_subplot(223, projection="lambert")
ax3.set_title("lambert")
ax3.grid(True)ax4 = fig.add_subplot(224, projection="mollweide")
ax4.set_title("mollweide")
ax4.grid(True)x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)f, axarr = plt.subplots(2, 2, subplot_kw=dict(projection=
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
