我有一個線條圖,我最後用一個標記高亮顯示(在這裏顯示爲紅色的大鑽石)。熊貓在一個尺度上繪製兩個圖表
我使用兩個兩個熊貓圖命令來創建它。問題是我得到意想不到的結果。取決於數據的長度以及我是否將紅色鑽石的情節放在第一位或第二位,我會得到不同的結果。似乎沒有一種我能辨別的模式。如下圖所示
正確/預期的結果有時候我:
和大多數的大型數據集,我得到以下警告時間:
/Users/xxxxx/.virtualenvs/test2/lib/python2.7/site-packages/matplotlib/axes.py:2542:UserWarning:試圖設置相同的left == right results i n個奇異變換;自動擴展。 左= 15727,右= 15727 + '左=%S,右=%s' 的)%(左,右))
的警告僅示出了它發生第一時間。顯然大熊貓不喜歡支持在同一軸上繪製2個不同x系列的不同系列?
可以試試下面的代碼來生成圖形,可以通過傳遞來玩,圖形的Series或Dataframes也可以顛倒紅色鑽石的繪圖順序。也可以更改數據點的數量。我無法在這裏重新創建的一個錯誤是,中間藍線上的紅色鑽石僅向左移動。
代碼:
plot_with_series = False
reverse_order = False
import pandas as pd
dates = pd.date_range('20101115', periods=800)
df = pd.DataFrame(randn(len(dates)), index = dates, columns = ['A'])
ds = pd.Series(randn(len(dates)), index = dates)
clf()
if plot_with_series:
if reverse_order: ds.plot()
ds.tail(1).plot(style='rD', markersize=20)
if not reverse_order: ds.plot()
else:
if reverse_order: df.plot(legend=False)
df.A.tail(1).plot(style='rD', markersize=20,legend=False)
if not reverse_order: df.plot(legend=False)
錯誤/警告來自內部的IPython或從運行從命令行腳本發生。在兩個最新版本的熊貓中也是不變的。任何想法或明顯的問題?
對我來說,它會創建兩個數字,第一個(前三個的組合,或者前兩個被覆蓋),第二個如果來自最後一個繪圖。奇怪的。可能值得發佈這[github問題](https://github.com/pydata/pandas/issues)。 –
是的,在Ipython中它有時會創建兩個數字。如果作爲腳本運行,它總是將它們合併(將其中的一些進入乳膠文檔)。在下一次重置之前需要一個clf()。不確定這是否是錯誤,或者我誤用了pandas與matplotlib的接口 – Joop
在第一次運行時,您正在清除一個尚不存在的數字。我認爲積極創建圖形和座標軸可以提供更好的可讀代碼。因此,在繪圖之前,例如:'fig,ax = plt.subplots()',然後總是用'ax = ax'將軸傳遞給熊貓。這可以讓您完全掌握/瞭解繪製哪些軸和圖的內容。 –