Files
2024-07-19 10:16:00 +08:00

1127 lines
47 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import * as Blockly from 'blockly/core';
const DATA_HUE = 170//'#5ec73d'//195;
export const series_create = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_series_create)
.appendField(new Blockly.FieldTextInput('ser1'), 'VAR')
this.appendValueInput('SER')
.appendField(Blockly.Msg.blockpy_series_via)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.blockpy_series_create_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('VAR')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setTitleValue(newName, 'VAR');
}
}
}
export const series_create_from_index = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_series_create)
.appendField(new Blockly.FieldTextInput('ser1'), 'VAR')
this.appendValueInput('SER')
.appendField(Blockly.Msg.blockpy_series_via)
this.appendValueInput('INDEX')
.setCheck([String, 'List'])
.appendField(Blockly.Msg.blockpy_series_set_index)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.blockpy_series_create_index_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('VAR')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setTitleValue(newName, 'VAR');
}
}
}
export const dataframe_create = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_dataframe_create)
.appendField(new Blockly.FieldTextInput('df1'), 'VAR')
this.appendValueInput('SER')
.appendField(Blockly.Msg.blockpy_series_via)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.blockpy_dataframe_create_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('VAR')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setTitleValue(newName, 'VAR');
}
}
}
export const dataframe_create_from_one_index = {
init: function () {
this.setColour(DATA_HUE);
var column_raw =
[[Blockly.Msg.DATAFRAME_RAW, 'index'], [Blockly.Msg.DATAFRAME_COLUMN, 'columns']];
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_dataframe_create)
.appendField(new Blockly.FieldTextInput('df1'), 'VAR')
this.appendValueInput('SER')
.appendField(Blockly.Msg.blockpy_series_via)
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(column_raw), 'COLUMN_RAW')
this.appendValueInput('INDEX')
.setCheck([String, 'List'])
.appendField(Blockly.Msg.blockpy_series_set_index)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.blockpy_dataframe_create_index_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('VAR')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setTitleValue(newName, 'VAR');
}
}
}
export const dataframe_create_from_index = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_dataframe_create)
.appendField(new Blockly.FieldTextInput('df1'), 'VAR')
this.appendValueInput('SER')
.appendField(Blockly.Msg.blockpy_series_via)
this.appendValueInput('INDEX_COLUMN')
.setCheck([String, 'List'])
.appendField(Blockly.Msg.blockpy_dataframe_set_index_column)
this.appendValueInput('INDEX_RAW')
.setCheck([String, 'List'])
.appendField(Blockly.Msg.blockpy_dataframe_set_index_raw)
this.setPreviousStatement(true);
this.setNextStatement(true);
//this.setInputsInline(true);
this.setTooltip(Blockly.Msg.blockpy_dataframe_create_index_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('VAR')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setTitleValue(newName, 'VAR');
}
}
}
export const series_create_from_text = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldTextInput('ser1'), 'VAR')
.appendField(' = [')
.appendField(new Blockly.FieldTextInput('1,2,3'), 'TEXT')
.appendField(']');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT);
},
getVars: function () {
return [this.getFieldValue('VAR')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setTitleValue(newName, 'VAR');
}
}
}
export const series_index_value = {
/**
* Block for list length.
* @this Blockly.Block
*/
init: function () {
this.setColour(DATA_HUE);
var index_value =
[[Blockly.Msg.SERIES_INDEX, 'index'], [Blockly.Msg.HTML_VALUE, 'value']];
this.appendValueInput('SERIES')
.setCheck('Series')
this.appendDummyInput("")
.appendField(Blockly.Msg.SERIES_INDEX_VALUE)
.appendField(new Blockly.FieldDropdown(index_value), 'INDEX_VALUE')
this.setOutput(true, 'List');
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('INDEX_VALUE');
var TOOLTIPS = {
'index': Blockly.Msg.SERIES_INDEX_TOOLTIP,
'value': Blockly.Msg.HTML_VALUE_TOOLTIP
};
return TOOLTIPS[mode];
});
}
};
export const series_get_num = {
init: function () {
this.setColour(DATA_HUE);
//this.setOutput(true, Number);
this.setOutput(true);
this.appendValueInput('SER')
.setCheck('Series')
this.appendValueInput('AT')
.setCheck(Number)
.appendField(Blockly.Msg.LANG_LISTS_GET_INDEX1);
this.appendDummyInput("")
.appendField(Blockly.Msg.LANG_LISTS_GET_INDEX2);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.TUPLE_GET_INDEX_TOOLTIP);
}
};
export const pl_plot_easy = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('SER')
.setCheck('Series')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const pl_plot = {
init: function () {
this.setColour(DATA_HUE);
var line_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_SOLID, '-'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED, '--'],
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN, '-.'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED, ':'],
[Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, ""]];
var color_type = [
[Blockly.Msg.COLOUR_RGB_BLUE, 'b'], [Blockly.Msg.COLOUR_RGB_GREEN, 'g'],
[Blockly.Msg.COLOUR_RGB_RED, 'r'], [Blockly.Msg.COLOUR_CYAN, 'c'],
[Blockly.Msg.COLOUR_MAGENTA, 'm'], [Blockly.Msg.COLOUR_YELLOW, 'y'],
[Blockly.Msg.COLOUR_BLACK, 'k'], [Blockly.Msg.COLOUR_WHITE, 'w']
];
var dot_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR, '.'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL, ','], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT, 'o'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN, 'v'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP, '^'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT, '<'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT, '>'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP, '1'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN, '2'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT, '3'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT, '4'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE, 's'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON, 'p'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_STAR, '*'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL, 'h'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL, 'H'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PLUS, '+'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CROSS, 'x'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND, 'D'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL, 'd'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL, '|'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL, '_']
];
this.appendValueInput('SER')
.setCheck('Series')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_DOT)
.appendField(new Blockly.FieldDropdown(dot_type), 'DOT')
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_LINE)
.appendField(new Blockly.FieldDropdown(line_type), 'LINE')
this.appendDummyInput("")
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldDropdown(color_type), 'COLOR')
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const pl_show = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_SHOW);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const pl_axes = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.mixpy_PL_AXES);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const pl_legend = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_LEGEND);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const pl_title = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_TITLE);
this.appendValueInput('TITLE')
.setCheck(String);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const pl_label = {
init: function () {
this.setColour(DATA_HUE);
var xylabel =
[[Blockly.Msg.PYLAB_LABEL_X, 'x'], [Blockly.Msg.PYLAB_LABEL_Y, 'y']];
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_SET_LABEL)
.appendField(new Blockly.FieldDropdown(xylabel), 'DIR');
this.appendValueInput('LABEL')
.appendField(Blockly.Msg.blockpy_PYLAB_LABEL)
.setCheck(String);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
// var thisBlock = this;
// this.setTooltip(function() {
// var mode = thisBlock.getFieldValue('DIR');
// var TOOLTIPS = {
// 'x': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,
// 'y': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD
// };
// return TOOLTIPS[mode];
// });
}
};
export const array_create = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('FROM')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_SPLITBYDOU)
.appendField(Blockly.Msg.MIXPY_DATA_ARRAY_CREATE_FROM);
this.appendValueInput('TO')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXPY_DATA_ARRAY_CREATE_TO);
this.appendValueInput('STEP')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_STEP);
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP);
}
};
export const pl_plot_bar = {
init: function () {
this.setColour(DATA_HUE);
var plot_bar =
[[Blockly.Msg.mixpy_PYLAB_PLOT_BAR_PLOT, 'plot'], [Blockly.Msg.mixpy_PYLAB_PLOT_BAR_BAR, 'bar']];
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW)
.appendField(new Blockly.FieldDropdown(plot_bar), 'DIR');
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('DIR');
var TOOLTIPS = {
'plot': Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,
'bar': Blockly.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP
};
return TOOLTIPS[mode];
});
}
};
export const pl_plot_scatter = {
init: function () {
this.setColour(DATA_HUE);
var color_type = [
[Blockly.Msg.COLOUR_RGB_BLUE, 'b'], [Blockly.Msg.COLOUR_RGB_GREEN, 'g'],
[Blockly.Msg.COLOUR_RGB_RED, 'r'], [Blockly.Msg.COLOUR_CYAN, 'c'],
[Blockly.Msg.COLOUR_MAGENTA, 'm'], [Blockly.Msg.COLOUR_YELLOW, 'y'],
[Blockly.Msg.COLOUR_BLACK, 'k'], [Blockly.Msg.COLOUR_WHITE, 'w']
];
var dot_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR, '.'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL, ','], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT, 'o'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN, 'v'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP, '^'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT, '<'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT, '>'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP, '1'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN, '2'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT, '3'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT, '4'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE, 's'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON, 'p'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_STAR, '*'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL, 'h'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL, 'H'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PLUS, '+'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CROSS, 'x'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND, 'D'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL, 'd'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL, '|'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL, '_']
];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_SCATTER)
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.appendValueInput('S')
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_DOT)
.appendField(new Blockly.FieldDropdown(dot_type), 'DOT');
this.appendDummyInput("")
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldDropdown(color_type), 'COLOR');
this.appendValueInput('TAG')
.setCheck(String)
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip("");
}
};
export const pl_plot_xy = {
init: function () {
this.setColour(DATA_HUE);
var line_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_SOLID, '-'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED, '--'],
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN, '-.'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED, ':']
, [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, ""]];
var color_type = [
[Blockly.Msg.COLOUR_RGB_BLUE, 'b'], [Blockly.Msg.COLOUR_RGB_GREEN, 'g'],
[Blockly.Msg.COLOUR_RGB_RED, 'r'], [Blockly.Msg.COLOUR_CYAN, 'c'],
[Blockly.Msg.COLOUR_MAGENTA, 'm'], [Blockly.Msg.COLOUR_YELLOW, 'y'],
[Blockly.Msg.COLOUR_BLACK, 'k'], [Blockly.Msg.COLOUR_WHITE, 'w']
];
var dot_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR, '.'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL, ','], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT, 'o'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN, 'v'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP, '^'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT, '<'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT, '>'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP, '1'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN, '2'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT, '3'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT, '4'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE, 's'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON, 'p'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_STAR, '*'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL, 'h'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL, 'H'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PLUS, '+'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CROSS, 'x'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND, 'D'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL, 'd'],
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL, '|'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL, '_']
];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_XY)
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_DOT)
.appendField(new Blockly.FieldDropdown(dot_type), 'DOT')
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_LINE)
.appendField(new Blockly.FieldDropdown(line_type), 'LINE')
this.appendDummyInput("")
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldDropdown(color_type), 'COLOR')
this.appendValueInput('TAG')
.setCheck(String)
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP);
}
};
export const pl_bar = {
init: function () {
this.setColour(DATA_HUE);
var align =
[[Blockly.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER, 'center'], [Blockly.Msg.AILGN_EDGE, 'edge']];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_BAR)
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.appendValueInput('WIDTH')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_WIDTH);
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PYLAB_BAR_ALIGN)
.appendField(new Blockly.FieldDropdown(align), 'ALIGN')
this.appendDummyInput()
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldColour('#0000ff'), 'COLOR');
this.appendValueInput('TAG')
.setCheck(String)
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP);
}
};
export const pl_pie = {
init: function () {
this.setColour(DATA_HUE);
var shadow =
[[Blockly.Msg.mixpy_PL_PIE_SHADOW_N, 'False'], [Blockly.Msg.mixpy_PL_PIE_SHADOW_Y, 'True']];
var autopct =
[[Blockly.Msg.mixpy_PL_PIE_SHADOW_N, 'None'], [Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z, '%.0f%%'], [Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT_O, '%.1f%%'], [Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT_T, '%.2f%%']];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_PIE)
.appendField(Blockly.Msg.COLOUR_BLEND_RATIO);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.appendValueInput('EXPLODE')
.appendField(Blockly.Msg.mixpy_PYLAB_PIE_EXPLODE);
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT)
.appendField(new Blockly.FieldDropdown(autopct), 'autopct')
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PYLAB_PIE_SHADOW)
.appendField(new Blockly.FieldDropdown(shadow), 'SHADOW')
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP);
}
};
export const pl_hist = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_HIST)
.appendField(Blockly.Msg.MIXLY_SD_DATA);
this.appendValueInput('B')
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const pl_ticks = {
init: function () {
this.setColour(DATA_HUE);
var xylabel =
[[Blockly.Msg.PYLAB_LABEL_X, 'x'], [Blockly.Msg.PYLAB_LABEL_Y, 'y']];
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETTING)
.appendField(new Blockly.FieldDropdown(xylabel), 'DIR');
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS)
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE)
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_TICKS_TOOLTIP);
}
};
export const numpy_trig = {
/**
* Block for trigonometry operators.
* @this Blockly.Block
*/
init: function () {
var OPERATORS = [
['sin', 'sin'],
['cos', 'cos'],
['tan', 'tan'],
['arcsin', 'arcsin'],
['arccos', 'arccos'],
['arctan', 'arctan'],
[Blockly.Msg.LANG_MATH_TO_ROUND, 'round'],
[Blockly.Msg.LANG_MATH_TO_CEIL, 'ceil'],
[Blockly.Msg.LANG_MATH_TO_FLOOR, 'floor']
];
this.setColour(DATA_HUE);
this.setOutput(true);
this.setInputsInline(true);
this.appendDummyInput()
.appendField(Blockly.Msg.mixpy_NUMPY_TRIG)
this.appendValueInput('NUM')
.setCheck(Number)
.appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');
this.setTooltip(Blockly.Msg.mixpy_NUMPY_TRIG_TOOLTIP);
}
};
export const pl_subplot = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('VET')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_SUBPLOT)
.appendField(Blockly.Msg.mixpy_SUBPLOT_VERTICLE);
this.appendValueInput('HOR')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_SUBPLOT_HORIZEN);
this.appendValueInput('NUM')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_SUBPLOT_NUM);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP);
}
};
export const pandas_readcsv = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput("FILENAME")
.appendField(Blockly.Msg.MIXPY_PANDAS_READ_CSV);
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.mixpy_PANDAS_READCSV_HEADER_Y, '0'], [Blockly.Msg.mixpy_PANDAS_READCSV_HEADER_N, 'None']]), 'MODE');
this.appendDummyInput()
.appendField(Blockly.Msg.mixpy_PANDAS_READCSV_TITLE);
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.mixpy_PANDAS_READCSV_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('VAR')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setTitleValue(newName, 'VAR');
}
}
};
export const dataframe_get = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('DICT')
.setCheck('Dict')
this.appendValueInput('KEY')
.appendField(Blockly.Msg.mixpy_DATAFRAME_GET)
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_DATAFRAME_GET_INDEX)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.DATAFRAME_COLUMN, 'column'], [Blockly.Msg.DATAFRAME_RAW, 'raw']]), 'MODE')
this.setOutput(true);
this.setTooltip(Blockly.Msg.mixpy_DATAFRAME_GET_TOOLTIP);
}
};
export const pl_savefig = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput("FILE")
.setCheck(String)
.appendField(Blockly.Msg.mixpy_PL_SAVEFIG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setOutput(false);
this.setTooltip(Blockly.Msg.mixpy_PL_SAVEFIG_TOOLTIP);
}
};
export const pl_text = {
init: function () {
this.setColour(DATA_HUE);
var halign =
[[Blockly.Msg.TEXT_TRIM_LEFT, 'right'], [Blockly.Msg.mixpy_PL_TEXT_CENTER, 'center'], [Blockly.Msg.TEXT_TRIM_RIGHT, 'left']];
var valign =
[[Blockly.Msg.mixpy_PL_TEXT_TOP, 'bottom'], [Blockly.Msg.mixpy_PL_TEXT_CENTER, 'center'], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, 'top']];
this.appendValueInput('VET')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_SETTING)
.appendField(Blockly.Msg.mixpy_PL_TEXT_X);
this.appendValueInput('HOR')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_PL_TEXT_Y);
this.appendValueInput('NUM')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_PL_TEXT_TAG);
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PL_TEXT_HOR)
.appendField(new Blockly.FieldDropdown(halign), 'HALIGN');
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PL_TEXT_VER)
.appendField(new Blockly.FieldDropdown(valign), 'VALIGN');
this.appendValueInput('FONTNUM')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PL_TEXT_TOOLTIP);
}
};
export const array_toarray = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('VAR')
.appendField(Blockly.Msg.MIXLY_TOARRAY);
this.setOutput(true, 'List');
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY);
}
};
export const plot_plot_easy = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('SER')
.setCheck('Series')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const plot_plot = {//将XX绘制为折线图删去尚不支持的点型
init: function () {
this.setColour(DATA_HUE);
var line_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_SOLID, '-'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED, '--'],
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN, '-.'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED, ':'],
[Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, ""]];
var color_type = [
[Blockly.Msg.COLOUR_RGB_BLUE, 'b'], [Blockly.Msg.COLOUR_RGB_GREEN, 'g'],
[Blockly.Msg.COLOUR_RGB_RED, 'r'], [Blockly.Msg.COLOUR_CYAN, 'c'],
[Blockly.Msg.COLOUR_MAGENTA, 'm'], [Blockly.Msg.COLOUR_YELLOW, 'y'],
[Blockly.Msg.COLOUR_BLACK, 'k'], [Blockly.Msg.COLOUR_WHITE, 'w']
];
var dot_type =
[[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR, '.'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL, ','], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT, 'o']
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN, 'v'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP, '^'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT, '<'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT, '>'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP, '1'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN, '2'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT, '3'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT, '4'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE, 's'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON, 'p'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_STAR, '*'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL, 'h'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL, 'H'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PLUS, '+'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CROSS, 'x'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND, 'D'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL, 'd'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL, '|'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL, '_']
];
this.appendValueInput('SER')
.setCheck('Series')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_DOT)
.appendField(new Blockly.FieldDropdown(dot_type), 'DOT')
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_LINE)
.appendField(new Blockly.FieldDropdown(line_type), 'LINE')
this.appendDummyInput("")
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldDropdown(color_type), 'COLOR')
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const plot_show = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_SHOW);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const plot_axes = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.mixpy_PL_AXES);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const plot_legend = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_LEGEND);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const plot_title = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_TITLE);
this.appendValueInput('TITLE')
.setCheck(String);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const plot_label = {
init: function () {
this.setColour(DATA_HUE);
var xylabel =
[[Blockly.Msg.PYLAB_LABEL_X, 'x'], [Blockly.Msg.PYLAB_LABEL_Y, 'y']];
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_PYLAB_SET_LABEL)
.appendField(new Blockly.FieldDropdown(xylabel), 'DIR');
this.appendValueInput('LABEL')
.appendField(Blockly.Msg.blockpy_PYLAB_LABEL)
.setCheck(String);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
// var thisBlock = this;
// this.setTooltip(function() {
// var mode = thisBlock.getFieldValue('DIR');
// var TOOLTIPS = {
// 'x': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,
// 'y': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD
// };
// return TOOLTIPS[mode];
// });
}
};
export const plot_plot_bar = {
init: function () {
this.setColour(DATA_HUE);
var plot_bar =
[[Blockly.Msg.mixpy_PYLAB_PLOT_BAR_PLOT, 'plot'], [Blockly.Msg.mixpy_PYLAB_PLOT_BAR_BAR, 'bar']];
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW)
.appendField(new Blockly.FieldDropdown(plot_bar), 'DIR');
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('DIR');
var TOOLTIPS = {
'plot': Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,
'bar': Blockly.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP
};
return TOOLTIPS[mode];
});
}
};
export const plot_plot_scatter = {//散点图,删去尚不支持的点型;修改了颜色的选择方式
init: function () {
this.setColour(DATA_HUE);
var dot_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR, '.'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL, ','], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT, 'o']
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN, 'v'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP, '^'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT, '<'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT, '>'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP, '1'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN, '2'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT, '3'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT, '4'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE, 's'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON, 'p'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_STAR, '*'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL, 'h'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL, 'H'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PLUS, '+'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CROSS, 'x'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND, 'D'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL, 'd'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL, '|'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL, '_']
];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_SCATTER)
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.appendValueInput('S')
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_DOT)
.appendField(new Blockly.FieldDropdown(dot_type), 'DOT');
// this.appendDummyInput("")
// .appendField(Blockly.Msg.HTML_COLOUR)
// .appendField(new Blockly.FieldDropdown(color_type), 'COLOR');
this.appendDummyInput()
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldColour('#0000ff'), 'COLOR');
this.appendValueInput('TAG')
.setCheck(String)
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip("");
}
};
export const plot_plot_xy = {//折线图,删去尚不支持的点型
init: function () {
this.setColour(DATA_HUE);
var line_type = [
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_SOLID, '-'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED, '--'],
[Blockly.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN, '-.'], [Blockly.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED, ':'],
[Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, ""]];
var color_type = [
[Blockly.Msg.COLOUR_RGB_BLUE, 'b'], [Blockly.Msg.COLOUR_RGB_GREEN, 'g'],
[Blockly.Msg.COLOUR_RGB_RED, 'r'], [Blockly.Msg.COLOUR_CYAN, 'c'],
[Blockly.Msg.COLOUR_MAGENTA, 'm'], [Blockly.Msg.COLOUR_YELLOW, 'y'],
[Blockly.Msg.COLOUR_BLACK, 'k'], [Blockly.Msg.COLOUR_WHITE, 'w']
];
var dot_type =
[[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR, '.'], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL, ','], [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT, 'o']
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN, 'v'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP, '^'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT, '<'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT, '>'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP, '1'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN, '2'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT, '3'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT, '4'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE, 's'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON, 'p'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_STAR, '*'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL, 'h'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL, 'H'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_PLUS, '+'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_CROSS, 'x'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND, 'D'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL, 'd'],
// [Blockly.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL, '|'],[Blockly.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL, '_']
];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_XY)
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_DOT)
.appendField(new Blockly.FieldDropdown(dot_type), 'DOT')
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_PYLAB_PLOT_LINE)
.appendField(new Blockly.FieldDropdown(line_type), 'LINE')
this.appendDummyInput("")
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldDropdown(color_type), 'COLOR')
this.appendValueInput('TAG')
.setCheck(String)
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP);
}
};
export const plot_bar = {
init: function () {
this.setColour(DATA_HUE);
var align =
[[Blockly.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER, 'center'], [Blockly.Msg.AILGN_EDGE, 'edge']];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_BAR)
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_X);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_PLOT_Y);
this.appendValueInput('WIDTH')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_WIDTH);
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PYLAB_BAR_ALIGN)
.appendField(new Blockly.FieldDropdown(align), 'ALIGN')
this.appendDummyInput()
.appendField(Blockly.Msg.HTML_COLOUR)
.appendField(new Blockly.FieldColour('#0000ff'), 'COLOR');
this.appendValueInput('TAG')
.setCheck(String)
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP);
}
};
export const plot_pie = {
init: function () {
this.setColour(DATA_HUE);
var shadow =
[[Blockly.Msg.mixpy_PL_PIE_SHADOW_N, 'False'], [Blockly.Msg.mixpy_PL_PIE_SHADOW_Y, 'True']];
var autopct =
[[Blockly.Msg.mixpy_PL_PIE_SHADOW_N, 'None'], [Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z, '%.0f%%'], [Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT_O, '%.1f%%'], [Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT_T, '%.2f%%']];
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_PIE)
.appendField(Blockly.Msg.COLOUR_BLEND_RATIO);
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.appendValueInput('EXPLODE')
.appendField(Blockly.Msg.mixpy_PYLAB_PIE_EXPLODE);
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PYLAB_PIE_AUTOPCT)
.appendField(new Blockly.FieldDropdown(autopct), 'autopct')
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PYLAB_PIE_SHADOW)
.appendField(new Blockly.FieldDropdown(shadow), 'SHADOW')
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP);
}
};
export const plot_hist = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_HIST)
.appendField(Blockly.Msg.MIXLY_SD_DATA);
this.appendValueInput('B')
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const plot_ticks = {
init: function () {
this.setColour(DATA_HUE);
var xylabel =
[[Blockly.Msg.PYLAB_LABEL_X, 'x'], [Blockly.Msg.PYLAB_LABEL_Y, 'y']];
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETTING)
.appendField(new Blockly.FieldDropdown(xylabel), 'DIR');
this.appendValueInput('A')
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS)
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE)
this.appendValueInput('B')
.appendField(Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PYLAB_TICKS_TOOLTIP);
}
};
export const plot_subplot = {
init: function () {
this.setColour(DATA_HUE);
this.appendValueInput('VET')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_SUBPLOT)
.appendField(Blockly.Msg.mixpy_SUBPLOT_VERTICLE);
this.appendValueInput('HOR')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_SUBPLOT_HORIZEN);
this.appendValueInput('NUM')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_SUBPLOT_NUM);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP);
}
};
export const plot_savefig = {
init: function () {
this.setColour(DATA_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PL_SAVEFIG);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setOutput(false);
this.setTooltip(Blockly.Msg.mixpy_PL_SAVEFIG_TOOLTIP);
}
};
export const plot_text = {
init: function () {
this.setColour(DATA_HUE);
var halign =
[[Blockly.Msg.TEXT_TRIM_LEFT, 'right'], [Blockly.Msg.mixpy_PL_TEXT_CENTER, 'center'], [Blockly.Msg.TEXT_TRIM_RIGHT, 'left']];
var valign =
[[Blockly.Msg.mixpy_PL_TEXT_TOP, 'bottom'], [Blockly.Msg.mixpy_PL_TEXT_CENTER, 'center'], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, 'top']];
this.appendValueInput('VET')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_SETTING)
.appendField(Blockly.Msg.mixpy_PL_TEXT_X);
this.appendValueInput('HOR')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_PL_TEXT_Y);
this.appendValueInput('NUM')
.setCheck(Number)
.appendField(Blockly.Msg.mixpy_PL_TEXT_TAG);
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PL_TEXT_HOR)
.appendField(new Blockly.FieldDropdown(halign), 'HALIGN');
this.appendDummyInput("")
.appendField(Blockly.Msg.mixpy_PL_TEXT_VER)
.appendField(new Blockly.FieldDropdown(valign), 'VALIGN');
this.appendValueInput('FONTNUM')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.mixpy_PL_TEXT_TOOLTIP);
}
};