刚接触或者接触一段时间Python的小伙伴应该有这种疑问,怎么把自己的图画得好看?其中配色是一个关键因素,这个之前在如何使用手游角色给科研赋能——藿藿篇中写了怎么用一张手游立绘凑出一个色卡。
下面介绍几个获取色卡的途径
2.自制色卡
除了发癫用原神或者星穹轨道角色制卡,你还有以下选择
http://zhongguose.com/
https://color.hailpixel.com/
每次的点击都会产生配色。
快用你高级的审美征服审稿人吧。
至于生成的配色怎么制作成色卡。
请听这回分解。
选出色号后进行RGB排序
colors = ['#5c2223', '#5a191b', '#5a1216', '#c04851', '#ed5a65', '#f07c82', '#eea2a4', '#ee3f4d', '#c02c38', '#a7535a']
# 将颜色转换为RGB格式
rgb_colors = [tuple(int(colors[i][j:j+2], 16) for j in (1, 3, 5)) for i in range(len(colors))]
# 计算颜色的"暖度",这里简单地使用了RGB颜色空间中的一维表示方法
warmth = [r for r, g, b in rgb_colors]
# 按照"暖度"对颜色进行排序
sorted_colors = [x for _, x in sorted(zip(warmth, colors))]
print(sorted_colors)
['#5a1216', '#5a191b', '#5c2223', '#a7535a', '#c02c38', '#c04851', '#ed5a65', '#ee3f4d', '#eea2a4', '#f07c82']
开始绘图
import xarray as xr
import matplotlib.pyplot as plt
import numpy as np
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
from matplotlib.colors import LinearSegmentedColormap
# 定义颜色列表,从冷到暖排序
colors = sorted_colors
# 创建自定义的色卡
custom_colormap = LinearSegmentedColormap.from_list('custom_cmap', colors)
# 打开数据集
nc = xr.open_dataset('/home/mw/input/1107125177/2023110720.nc')
data = nc.z[0, 2, :, :]/98
lons = data.longitude
lats = data.latitude
fig = plt.figure(figsize=(11, 8.5))
# 设置地图投影为PlateCarree
ax = plt.axes(projection=ccrs.PlateCarree())
# 绘制填充等值线图
cs = ax.contourf(lons, lats, data, transform=ccrs.PlateCarree(), cmap=custom_colormap, levels=np.linspace(data.min(), data.max(), 20))
# 添加网格线
ax.gridlines(draw_labels=True, dms=True, x_inline=False, y_inline=False)
# 添加海岸线
ax.coastlines()
# 添加颜色条,并设置标题
cbar = plt.colorbar(cs, orientation='horizontal')
cbar.set_label('位势高度 (m)')
# 设置标题和标签
plt.title('500hPa Geopotential Height', fontsize=16)
plt.xlabel('Longitude', fontsize=12)
plt.ylabel('Latitude', fontsize=12)
# 显示图形
plt.show()
谢谢观看。
ps: 如果想在图像某些位置加上文字说明可以加plt.text()
具体怎么用CSDN里说得很全面,就不赘述了。