我试图绘制一个数据帧的两列,一个具有Log Yscale,另一个具有常规数据帧。我不确定语法是什么,文档也没有太多帮助。任何人都可以建议正确的语法是什么,以及如何学习matplotlib如何在python中工作?
答案 0 :(得分:4)
Pandas提供了在secondary y axis上绘图的选项。除此之外,您只需要使用.set_scale('log')
更改辅助轴的比例。
以下是一个例子:
import matplotlib.pylab as plt
import pandas as pd
df = pd.DataFrame({'x': [1,2,0,4], 'y': [1e1, 5e3, 3e2, 3e4]})
ax = df.plot(secondary_y='y')
ax2 = ax.twinx()
ax2.set_yscale('log')
plt.show()
答案 1 :(得分:0)
你可以沿着这些方向做点什么:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
arr_base = np.arange(2,11)
arr_log = np.log(arr_base)
my_df = pd.DataFrame(np.vstack((arr_base, arr_log)).T, columns=['a', 'b'])
fig = plt.figure()
sub_plot = fig.add_subplot(1, 1, 1)
sub_plot.plot(arr_base)
sub_plot.plot(arr_log)
plt.savefig('myplot.svg')
学习matplotlib基础知识的一个很好的资源,特别是与熊猫有关,是Wes McKinney的书“Python for Data Analysis”。它不仅在第8章中对matplotlib进行了很好的介绍(你可以在第228页找到与我的例子非常接近的东西),但是如果你计划大量使用熊猫,它也是一个必不可少的参考。 numpy的。
matplotlib的homepage也有一些教程的链接。他们还保持page of example uses。两者都是可靠的资源。