Python绘图总结(Matplotlib篇)之图形分类及保存

学习https://matplotlib.org/gallery/index.html 记录,描述不一定准确,具体请参考官网
Matplotlib使用总结图
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=


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部