带有matplotlib的折线图的值数组长度可能不规则,例如:
[18,17,0,0,2]
[6,4,0,0]
[3]
这些是时间线上的值,最后一个是最新值,每个值对应一周。因此,这意味着第二个用户比第一个用户加入的时间晚了一个星期,而最后一个用户只加入了上一周。
为了绘制折线图,我使用None值填充较小的数组(与fill_between
无关)。
[18, 17, 0, 0, 2]
[None, None, None, None, 3]
[None, 6, 4, 0, 0]
我正在使用interpolate=True
,因为如果值变为零,我需要填充曲线。
然而,这具有意想不到的效果,对于后来开始的人来说,填充也将插值,从0开始到实际值。
可以这样做吗?我查看了docs,它说明了where数组。
这是给定图表的where数组的结构:
[True, True, False, False, True, False]
[False, True, True, False, False, False]
[False, False, False, False, True, False]
正如你所看到的,我为第二个值行设置了第一个元素为False,但由于" interpolate=True
,它将开始填充......
(颜色代码:第一行蓝色,第二行绿色,第三个红色)
希望任何天使都可以为此提供帮助....
以下是填充的实际代码:
for i, values in enumerate(time_series):
ax.plot(x, y[i], ',-', label=label, color=linecolor, markersize=8, fillstyle="full",linewidth=1.5, clip_on=True, zorder=200)
ax.fill_between(x, 0, zero_y, where=where, color=fillcolors[i], alpha=0.8, edgecolor="white", zorder=zorder[i], interpolate=True)
请注意fill_between
在使用None
值时实际崩溃...我需要"翻译" None
值为0 ......这可能使问题更加复杂......
答案 0 :(得分:0)
内部mpl将您的列表转换为 foreach (Tripclass Trip in TripsByTripIds )
{
ImageButton imageButton = new ImageButton();
imageButton.ImageUrl = "~/" +Trip.CorridorName+"/"+Trip.Time+"/"+Trip.ImgFileName;
imageButton.Height = Unit.Pixel(100);
imageButton.Style.Add("padding", "5px");
imageButton.Width = Unit.Pixel(100);
imageButton.Click += new ImageClickEventHandler(imageButton_Click);
AMSPanel1.Controls.Add(imageButton);
AMSPanel1.Height = Unit.Pixel(860);
}
protected void imageButton_Click(object sender, ImageClickEventArgs fi)
{
testimage.ImageUrl = ((ImageButton)sender).ImageUrl;
lblTime.Text = Trip.Time;
lblLocation.Text = Trip.Location; //can't access trip object here
}
。 “非数字”(可用于缺失数据)的正确值为import requests
from urllib2 import urlopen
import csv
import pandas as pd
from pandas import DataFrame
import datetime
import pandas.io.data
YahooUrl = 'http://ichart.yahoo.com/table.csv?s='
start_month = 1 - 1
start_day = 1
start_year = 2010
end_month = 12 - 1
end_day = 31
end_year = 2014
Start_ApiMonth = '&a=%s' %(start_month)
Start_ApiDay = '&b=%s' %(start_day)
Start_ApiYear = '&c=%s' %(start_year)
End_ApiMonth = '&d=%s' %(end_month)
End_ApiDay = '&e=%s' %(end_day)
End_ApiYear = '&f=%s' %(end_year)
interval = 'm'
ApiInterval = '&g=%s' %(interval)
ApiStatic = '&ignore=.csv'
Ticker = raw_input("What is the ticker > ")
Website = urlopen(YahooUrl + Ticker + Start_ApiMonth + Start_ApiDay + Start_ApiYear + End_ApiMonth + End_ApiDay + End_ApiYear + ApiInterval + ApiStatic)
Info = Website.read()
output = open('output.csv','wb')
wr = csv.writer(output, dialect='excel')
for item in Info:
wr.writerow(item)
print Info
。用np.ndarray
替换所有np.nan
将解决问题。