美文网首页
日历坐标系Calendar

日历坐标系Calendar

作者: 榴莲气象 | 来源:发表于2019-01-04 19:08 被阅读3次
    ECHART

    Matplotlib and Numpy - Create a calendar heatmap

    @author: woldekidank
    """`enter code here`
    
    import numpy as np
    from datetime import date
    import datetime
    import matplotlib.pyplot as plt
    import random
    
    
    D = date(2016,1,1)
    Dord = date.toordinal(D)
    Dweekday = date.weekday(D)
    
    Dsnday = Dord - Dweekday + 1 #find sunday
    square = np.array([[0, 0],[ 0, 1], [1, 1], [1, 0], [0, 0]])#x and y to draw a square
    row = 1
    count = 0
    while row != 0:
        for column in range(1,7+1):    #one week per row
            prof = np.ones([24, 1])
            hourly = np.zeros([24, 1])
            for i in range(1,24+1):
                prof[i-1, 0] = prof[i-1, 0] * random.uniform(0, 1)
                hourly[i-1, 0] = i / 24
            plt.title('Temperature Profile')
            plt.plot(square[:, 0] + column - 1, square[:, 1] - row + 1,color='r')    #go right each column, go down each row
            if date.fromordinal(Dsnday).month == D.month:
                if count == 0:
                    plt.plot(hourly, prof)
                else:
                    plt.plot(hourly + min(square[:, 0] + column - 1), prof + min(square[:, 1] - row + 1))
    
                plt.text(column - 0.5, 1.8 - row, datetime.datetime.strptime(str(date.fromordinal(Dsnday)),'%Y-%m-%d').strftime('%a'))
                plt.text(column - 0.5, 1.5 - row, date.fromordinal(Dsnday).day)
    
            Dsnday = Dsnday + 1
            count = count + 1
    
        if date.fromordinal(Dsnday).month == D.month:
            row = row + 1    #new row
        else:
            row = 0    #stop the while loop
    
    image.png

    R

    how to use black-and-white fill patterns instead of color coding on Calendar Heatmap

    Add dates to calendar heat map R

    r - Fit heat map into grid lines on Calendar Heatmap

    image.png

    Calendar_Heatmaps

    CALENDAR HEATMAP

    use

    # http://margintale.blogspot.in/2012/04/ggplot2-time-series-heatmaps.html
    library(ggplot2)
    library(plyr)
    library(scales)
    library(zoo)
    
    df <- read.csv("https://raw.githubusercontent.com/selva86/datasets/master/yahoo.csv")
    df$date <- as.Date(df$date)  # format date
    df <- df[df$year >= 2012, ]  # filter reqd years
    df <- df[df$month >= 10, ]  # filter reqd years
    
    # Create Month Week
    df$yearmonth <- as.yearmon(df$date)
    df$yearmonthf <- factor(df$yearmonth)
    df <- ddply(df,.(yearmonthf), transform, monthweek=1+week-min(week))  # compute week number of month
    df <- df[, c("year", "yearmonthf", "monthf", "week", "monthweek", "weekdayf", "VIX.Close")]
    head(df)
    #>   year yearmonthf monthf week monthweek weekdayf VIX.Close
    #> 1 2012   Jan 2012    Jan    1         1      Tue     22.97
    #> 2 2012   Jan 2012    Jan    1         1      Wed     22.22
    #> 3 2012   Jan 2012    Jan    1         1      Thu     21.48
    #> 4 2012   Jan 2012    Jan    1         1      Fri     20.63
    #> 5 2012   Jan 2012    Jan    2         2      Mon     21.07
    #> 6 2012   Jan 2012    Jan    2         2      Tue     20.69
    
    
    # Plot
    ggplot(df, aes(monthweek, weekdayf, fill = VIX.Close)) +
      geom_tile(colour = "white") +
      facet_grid(year~monthf) +
      scale_fill_gradient(low="red", high="green") +
      labs(x="Week of Month",
           y="",
           title = "Time-Series Calendar Heatmap",
           subtitle="Yahoo Closing Price",
           fill="Close")
    ggsave(file = "mtcars_plot.png", width = 5, height = 6, type = "cairo", dpi = 600)
    
    

    相关文章

      网友评论

          本文标题:日历坐标系Calendar

          本文链接:https://www.haomeiwen.com/subject/tqsshqtx.html