Datumsaxel
Möjliga användningsscenario
När du skapar ett diagram från arbetsboksdatabaser som använder datum och datumen ritas längsmed den horisontella (kategori)axeln i diagrammet, ändrar Aspose.cells automatiskt kategori-axeln till en datum (tidskal)axel. En datumsaxel visar datum i kronologisk ordning vid specifika intervall eller basenheter, såsom antalet dagar, månader eller år, även om datumen i arbetsboken inte är i sekventiell ordning eller i samma basenheter. Som standard bestämmer Aspose.cells basenheterna för dataraden baserat på den minsta skillnaden mellan vilka två datum som helst i kalkylbladsdatan. Till exempel, om du har data för aktiepriser där den minsta skillnaden mellan datum är sju dagar, ställer Excel basenheten till dagar, men du kan ändra basenheten till månader eller år om du vill se aktiens prestanda under en längre tidsperiod.
Hantera datumaxeln som Microsoft Excel
Se följande exempelkod som skapar en ny Excelfil och sätter in värdena för diagrammet på det första kalkylarket. Sedan lägger vi till ett diagram och ställer in typen för Axis till TIME_SCALE och ställer sedan in basenheterna till Dagar.
Exempelkod
from aspose.cells import Workbook | |
from aspose.cells.charts import CategoryType, ChartTextDirectionType, ChartType, TimeUnit | |
from aspose.cells.drawing import FillType | |
from datetime import datetime | |
# Create an instance of Workbook | |
workbook = Workbook() | |
# Get the first worksheet | |
worksheet = workbook.worksheets[0] | |
# Add the sample values to cells | |
worksheet.cells.get("A1").put_value("Date") | |
# 14 means datetime format | |
style = worksheet.cells.style | |
style.number = 14 | |
# Put values to cells for creating chart | |
worksheet.cells.get("A2").set_style(style) | |
worksheet.cells.get("A2").put_value(datetime(2022, 6, 26)) | |
worksheet.cells.get("A3").set_style(style) | |
worksheet.cells.get("A3").put_value(datetime(2022, 5, 22)) | |
worksheet.cells.get("A4").set_style(style) | |
worksheet.cells.get("A4").put_value(datetime(2022, 8, 3)) | |
worksheet.cells.get("B1").put_value("Price") | |
worksheet.cells.get("B2").put_value(40) | |
worksheet.cells.get("B3").put_value(50) | |
worksheet.cells.get("B4").put_value(60) | |
# Adda chart to the worksheet | |
chartIndex = worksheet.charts.add(ChartType.COLUMN, 9, 6, 21, 13) | |
# Access the instance of the newly added chart | |
chart = worksheet.charts[chartIndex] | |
# Add SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B4" | |
chart.set_chart_data_range("A1:B4", True) | |
# Set the Axis type to Date time | |
chart.category_axis.category_type = CategoryType.TIME_SCALE | |
# Set the base unit for CategoryAxis to days | |
chart.category_axis.base_unit_scale = TimeUnit.DAYS | |
# Set the direction for the axis text to be vertical | |
chart.category_axis.tick_labels.direction_type = ChartTextDirectionType.VERTICAL | |
# Fill the PlotArea area with nothing | |
chart.plot_area.area.fill_format.fill_type = FillType.NONE | |
# Set max value of Y axis. | |
chart.value_axis.max_value = 70 | |
# Set major unit. | |
chart.value_axis.major_unit = 10.0 | |
# Save the file | |
workbook.save("DateAxis.xlsx") |