c#设置图片的dpi_[Python]论文出图风格设置神器库Science Plots

还在为论文图表格式而发愁吗?哈佛大学天文研究所的博士后给出了他的答案,你和Science之间的距离仅差这个神器。e0726fcce60d2ef8b880b5fa6bf68e14.png

贴出原项目地址 https://github.com/garrettj403/SciencePlots

1. 如何安装

SciencePlots库的安装很简单,项目地址中有写,可以在命令行中使用pip进行安装,命令如下(两者都可以):

 # for latest commit pip install git+https://github.com/garrettj403/SciencePlots.git  # for lastest release pip install SciencePlots

当然也可以手动安装,先下载项目的压缩包,找到自己的matplotlib库的style文件存放目录,如果不知道这个目录在哪里,可以打开Python,然后输入如下命令:

 import matplotlib print(matplotlib.get_configdir())

输出的路径就是这个目录了,进入这个目录后会有一个名为stylelib的文件夹,我们将之前下载的压缩包解压,然后复制styles文件夹中的内容到这个stylelib中即可(和上面的pip安装效果一样),如图:

c#设置图片的dpi_[Python]论文出图风格设置神器库Science Plots_第1张图片

2. 让我们来看看效果吧

此次使用Anaconda平台自带的JupyterLab进行演示:

  • 首先导入库

 import numpy as np import matplotlib.pyplot as plt
  • 然后来看看2D图像的绘制

先使用numpy生成数据,这里用的是某个同学的公式(她应该发现不了吧哈哈,侵删e0726fcce60d2ef8b880b5fa6bf68e14.png)

 # 不变的值 alpha, theta, k, delta= 100, 0.4, 0.5, 0.2 # 变化的值(X轴),取一百个进行模拟 e = np.linspace(0.05, 0.95, 100) # 两个Y值 p1 = alpha / (2 - e ** 2) p2 = alpha * (2 * (1 - theta + theta * k) * (2 - e ** 2) + theta * (k + delta) * e ** 2) / (4 * (1 - k ** 2) * (2 - e ** 2) - (k + delta) ** 2 * e ** 4)

然后使用SciencePlots提供的绘图风格来绘制图像,此处由于是在Jupyter中运行,需要补充notebook这一个风格,然后本次使用的风格为science+ieee(可以使用plt.style.available来查看可使用哪些风格)

 # 使用上下文的方式设置绘图风格 with plt.style.context(['science', 'ieee', 'notebook']):     fig, ax = plt.subplots()     ax.plot(e, p1) # 绘制曲线1     ax.plot(e, p2) # 绘制曲线2     ax.legend(['$p_d^M$', '$p_d^*$']) # 设置图例     ax.set_xlabel('$e$') # 设置X轴标签     fig.savefig('fig1.jpg', dpi=300) # 保存图片

结果如下图,还是很学术的吧哈哈:

c#设置图片的dpi_[Python]论文出图风格设置神器库Science Plots_第2张图片

  • 接下来是3D图像的绘制,效果差不多 这里就仅演示原生的3D图像绘制了

首先还是编数据,如下:

 # 不变的值 alpha, delta, e = 100, 0.2, 0.3 # 两个变量 theta = np.linspace(0.05, 0.5, 100) k = np.linspace(0.05, 0.95, 100) theta, k = np.meshgrid(theta, k)

然后绘图

 fig = plt.figure() ax = plt.axes(projection='3d') # 设置为3D ax.plot_surface(theta, k, pi, cmap='rainbow') # 使用rainbow的色带 ax.set_xlabel('$\\theta$') ax.set_ylabel('$k$') ax.set_zlabel('$\\pi_m^*$') plt.savefig('fig2.jpg', dpi=300)

结果如下图,这里是使用的默认风格,大家可以尝试替换为SciencePlots的风格试试哦,此外jupyter中拥有%matplotlib的魔术命令,支持与图像进行交互

c#设置图片的dpi_[Python]论文出图风格设置神器库Science Plots_第3张图片

大家下次见哈哈

你可能感兴趣的:(c#设置图片的dpi)