我正在尝试从csv文件创建图。在csv文件中,第一列是时间戳,第二列至第六列是不同的参与者。我想创建一个x轴为year(即2004)的图形,并用y轴上的百分比表示各方的值。
csv文件如下:
+ (NSString *) postDataToRemoteLogWithMessage:(NSString *)errorString{
// Send post request to webservice
NSString *errorData =[NSString stringWithFormat:@"errorString=%@",errorString];
NSData *postData = [errorData dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://mywebserviceurl"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if(conn) {
//NSLog(@"Connection Successful");
} else {
//NSLog(@"Connection could not be made");
}
}
我尝试了以下代码。
date,CSU/CDU,SPD,Gruene,FDP,Linke
891468000.0,34,44,6,5,6
891986400.0,34,44,6,5,6
892677600.0,35,43,6,5,5
894405600.0,32,46,6,6,5
895010400.0,33,46,5,5,5
从csv文件的第一列中,我想将该时间戳转换为年份。此外,我需要在条形图中显示以便可以轻松识别颜色区分方。
我希望该图看起来像下一页中的第5张图
(https://moderndata.plot.ly/elections-analysis-in-r-python-and-ggplot2-9-charts-from-4-countries/)
谢谢!
答案 0 :(得分:0)
您可以使用熊猫提供的csv阅读器。文档在这里:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
它看起来像这样:
将熊猫作为pd导入
import matplotlib.pyplot as plt
import datetime
df = pd.read_csv("polldata.csv", delimiter=',')
df['date'] = df['date'].apply(lambda ts: datetime.datetime.utcfromtimestamp(ts).strftime('%Y'))
print(df)
ols = df.columns
for n in range (len(cols)):
plt.plot(df,label=cols[n])
plt.xlabel('year',fontsize=14)
plt.ylabel('parties',fontsize=14)
plt.show()
它将打印:
date CSU/CDU SPD Gruene FDP Linke
0 1998 34 44 6 5 6
1 1998 34 44 6 5 6
2 1998 35 43 6 5 5
3 1998 32 46 6 6 5
4 1998 33 46 5 5 5
这会让您入门吗?